Phalcon:与命名空间建立模型关系

时间:2014-10-31 18:00:23

标签: model namespaces phalcon magic-function

我只是想设置带有命名空间的模型。那部分很简单。这是关系的一部分,我正在艰难度过。

我有这两个模型(这些模型被剥离):

<?php

namespace My\App\V1\Models;

class Movies extends \My\Namespace\Path\Base
{
}

?>



<?php

namespace My\App\V1\Models

class Genres extends \My\Namespace\Path\Base
{
    public function initialize()
    {
        $this->hasMany('id', 'Movies', 'genre_id');
    }

    public function howManyMovies()
    {
        return $this->countMovies();
    }
}

?>

所以...原样,这会给我:

Cannot redeclare class My\App\V1\Models\Movies ....

所以,我开始认为它与名称空间有关。所以...我将hasMany更改为:

$this->hasMany('id', 'My\\App\\V1\\Models\\Movies', 'genre_id');

我可以在“我的”前面加上反斜杠,但无论如何,我得到:

The method "countMovies" doesn't exist on model "My\App\V1\Models\Genres"

我尝试将该行更改为:

return $this->countMyAppV1ModelsMovies();

......这是相当冗长的,但无论如何。我仍然得到一个“方法不存在”的错误。

我错过了什么?

1 个答案:

答案 0 :(得分:4)

行。经过大量时间试图解决这个问题,然后在发布后5分钟,我明白了......

必须使用别名:

$this->hasMany('id', 'My\\App\\V1\\Models\\Movies', 'genre_id', ['alias'=>'Movies']);

我会将此留给其他可能需要它的人。