2016-04-25 3 views
0

У меня есть следующие отношения между моими таблицамиОтображение информации, связанной таблицы в шаблоне лопасть Laravel

relation

В моей модели у меня есть следующий код:

Расположение Модель:

public function member() { 
    return $this->belongsTo('App\Member','member_id'); 
} 

Модель участника:

public function locations(){ 
    return $this->hasMany('App\Location','member_id'); 
} 

Теперь в контроллере моего местоположения я создал следующую функцию.

public function getFinalData(){ 
    $locations = Location::with('member')->whereNotNull('member_id')->get(); 
    return view('locations.final-list',['locations'=>$locations]); 
} 

В моем шаблоне лезвия однако, я не могу перебирать свойств элементов

<ul> 
    @foreach($locations as $location) 
     <li>{{$location->id}}</li> 
     <li> 
     @foreach($location->member as $member) 
      {{$member->id}} 
     @endforeach 
     </li> 
    @endforeach 
</ul> 

Это дает мне следующую ошибку: Попытка получить свойство не-объекта (Вид: местоположениях /final-list.blade.php)

обновление: результат я пытаюсь добиться соответствует этому запросу

SELECT locations.location_id,locations.name,members.first_name,   members.last_name , locations.meters 
FROM locations,members 
WHERE locations.member_id = members.id 

Update 2:

Так я попытался получить доступ в одном месте с одной прилагается к нему, и что работает отлично

public function getFinalData(){ 
    //$locations = Location::with('member')->whereNotNull('member_id')->get(); 
    $location = Location::find(0); 

    return view('locations.final-list',['location'=>$location]); 
} 

в окончательном списке- $ Адрес-> член-> first_name

** Обновление 3 ** Выходной сигнал для одной записи: enter image description here

+0

member_id является Pk таблицы членов, так как это может быть NULL? Вы написали whereNotNull ('member_id'). –

+0

@RaviHirani Из-за того, что я получаю список местоположений, у которых определен member_id? – KrisTemmerman

+0

Возможно, что-то не хватает, но ваш метод 'getFinalData' кажется неправильным. Когда вы выполняете 'с' на модели, laravel только извлекает данные по отношению к этим отношениям. Он не запрашивает связанную модель. Итак, в вашем случае, когда вы делаете это '$ locations = Location :: with ('member') -> whereNotNull ('member_id') -> get();' вы должны получать ошибку 'Column not found'. – Dwijen

ответ

0

В модели Location перепишет ниже функции: -

public function member() 
{ 
    return $this->belongsTo('App\Member', 'id'); 
} 

Получить все места с детализацией членов, как показано ниже: -

$locations = Location::with('member')->get(); 

Надеется, что это будет работать для вас :-)

+0

Это возвращает ту же ошибку :( – KrisTemmerman

+0

Ссылка на ownTo также должна оставаться member_id, member_id ссылается на id в таблице участников? – KrisTemmerman

+0

@KrisTemmerman: Да. См. Эту ссылку: http://stackoverflow.com/questions/24469122/laravel -belongsto-not-working –

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