2015-03-02 5 views
0

У меня есть User модель, которая belongsToDepartment.Как использовать Laravel Eloquent queries и использовать отношения?

So Department получил ID и имя поля.

В модели пользователя я получил:

public function department() { 

     return $this->belongsTo('Department'); 
} 

Таким образом я могу сделать что-то вроде: Auth::user()->department->name получая реальное имя пользователя отдела принадлежит.

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

я писал:

$users = User::all(); 
foreach ($users as $user) { 
    $user -> department = Department::find($user->department_id)->name; 
} 

Есть ли лучший способ сделать это?

ответ

3

Вы можете нетерпеливые нагрузки связанные модели, так как они будут загружены для всех пользователей только с одним запросом к базе данных и будут включены в JSON выходе:

$users = User::with('department')->get(); 

More about eager loading in the Laravel Docs

+0

Не могли бы вы немного расширить свой ответ, возможно, включить некоторые другие случаи отношений? – diegoaguilar

+1

Пожалуйста, сначала прочтите документы. Если вы уже знаете, можете ли вы быть более конкретным в том, что неясно? – lukasgeiter

1

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

$users = User::all(); 
foreach ($users as $user) { 
    echo $user->department->name ; 
} 
+0

Это не совсем point, я хочу вернуть массив со всеми пользователями. – diegoaguilar

+0

Вы хотите перечислить всех пользователей в представлении с названием отдела, не так ли? – mininoz

+0

Правильно, вот оно – diegoaguilar

Смежные вопросы