Phalcon多模块通用型号魔术吸气剂不工作


Phalcon Multi module common model magic getter not working

我使用的是具有多模块结构的Phalcon PHP,我想在我的对象上使用一个神奇的getter,但当我尝试执行var_dump时,getter为null。

代码段模型用户

namespace Apps'Common'Models;
use Phalcon'Mvc'Model;
class Users extends Model{
   public $id;
   public $city_id;
   public $name;
   ...
   public function initialize(){
       $this->belongsTo("city_id", "City", "id");
   }
}

狙击手模型城市

namespace Apps'Common'Models;
use Phalcon'Mvc'Model;
class City extends Model{
   public $id;
   public $name;
   ...
   public function initialize(){
       $this->hasMany("id", "Users", "city_id");
   }
}

神奇的吸气剂利用率

public function addAction() {
  $user = Users::findFirst(array(
    "id = :id:",
    "bind" => array('id' => 2)
  ));
  city = $user->getCity();  // This is null
  echo city->name;
}

你知道为什么这个神奇的吸气剂$user->getCity();不起作用吗?

谢谢。

我找到了解决方案。

我必须在这样的关系中定义名称空间和别名:

namespace Apps'Common'Models;
use Phalcon'Mvc'Model;
class Users extends Model{
   public $id;
   public $city_id;
   public $name;
   ...
   public function initialize(){
       $this->belongsTo("city_id", "Apps'Common'Models'City", "id", array('alias' => 'City') );
   }
}

希望它能帮助