Я просто пытаюсь настроить модели с пространствами имен. Эта часть проста. Это та часть отношений, с которой у меня тяжелые времена.
У меня есть эти две модели (они урезаны):
<?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();
... что довольно многословно, но что угодно. Я все еще получаю сообщение об ошибке "метод не существует".
Что мне не хватает?