2017-02-04 3 views
0

Таким образом, моя модель Client имеет отношение Project, так как каждый клиент в таблице client связан со многими проектами в таблице projects.Laravel Eloquent hasMany возвращает только один результат?

Метод выглядит следующим образом:

Client.php:

public function projects() 
{ 
    return $this->hasMany('App\Projects', 'id', 'project_id'); 
} 

Кажется довольно просто. Но когда я пытаюсь это от контроллера:

$projects = Client::find(1)->projects()->get() 

я получаю только один результат, первый результат, от модели проекта, когда должно быть около полутора десятков. Это даже случается, если я изменяю целое число, отправленное find().

So Eloquent каждый раз возвращается в первую строку таблицы проектов. Почему он делает это и/или как я могу получить все соответствующие результаты?

ответ

0

hasMany (или one-to-many) отношения определяются в Laravel Documentation как

А «один-ко-многим» отношения используются для определения отношений, где одна модель владеет любым количеством других моделей.

В этом случае Many просто означает один или несколько.

Я предполагаю, что каждый проект имеет ссылку client_id. В этом случае изменения вашего projects() функцию

return $this->hasMany('App\Projects', 'client_id'); 

должны работать для вас.

+0

Правильно, у каждого клиента много проектов. –

+0

Итак, как я могу вернуть все результаты, полученные с одной модели? –

+0

@ ΓΓΓIC проверить мой обновленный ответ – Daniel