2015-10-13 4 views
1

У меня есть три стола, штат, места и отделы. В таблице персонала есть поля для местоположения и отдела, которые являются числовыми. Таблицы местоположений и отделов имеют поля id, которые используются таблицей персонала для указания местоположения и данных отдела. Я пытаюсь отобразить детали персонала в представлении, но не могу найти правильный синтаксис в документации laravel, чтобы сделать это, не создавая асоциальный массив.laravel eloquent связанные таблицы синтаксис

это то, что я имею в моем staffController файле

public function index() 
{ 
    $staff_details = Staff::all(); 


    foreach($allStaff as $staff_member){ 
     $location = Locations::find($staff_member->location); 
     $department= Departments::find($staff_member->department); 

     $staff_details[] = array(
      'id' => $staff_member->id, 
      'first_name' =>$staff_member->first_name, 
      'surname' =>$staff_member->surname, 
      'job_title' => $staff_member->job_title, 
      'location' => $location->location, 
      'department' => $department->department, 

     ); 
    } 


    return view('staff.index', compact('staff_details')); 

} 

, но это проходит массив. Я хочу передать staff_details объект, делающий somthing как $staff_details = Staff::all()->locations($staff->location)->departments($staff->department);

очевидно это неправильный синтаксис.

Может ли кто-нибудь указать мне правильное направление?

ответ

2

После того как вы set up the proper relationships in your model, используйте with метод:

$staff_details = Staff::with('locations', 'departments')->get(); 
+0

Спасибо за это. У меня есть мои отношения, созданные в моделях местоположений и отделов, в качестве сотрудников публичных функций() { return $ this-> принадлежит ToMany ('App \ Staff'); } и в штатной модели в качестве местоположения публичных функций() { return $ this-> hasOne ('App \ Locations', 'location'); } общественные департаменты ( { возвращение $ this-> hasOne ('App \ Departments', 'department'); }, но он возвращает null для местоположения и отдела, любые идеи, почему это происходит? –

+0

Я понял, что мне нужен внешний ключ и локальный ключ в отношениях в моделях, а также нужно правильно их ссылать на лезвие, поэтому отношения отправляются туда, где возвращаются $ this-> hasOne ('App \ Locations', 'id' , 'место нахождения'); и упоминается в лезвии как {{$ staff-> locations-> location}} спасибо за ввод, отличная помощь –

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