我只是想用命名空间设置模型。那部分很简单。这是我遇到困难的关系部分。
我有这两个模型(这些都被剥离了):
<?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();
...这相当冗长,但无论如何。我仍然收到“方法不存在”错误。
我错过了什么?