2015-06-01 2 views
0

У меня есть модель Meetings так:Выбор Обязательные для заполнения поля с использованием отношений в Laravel

public function meeting_comments(){ 

     return $this->hasMany('App\MeetingsComments', 'meeting_id', 'id'); 
    } 

    public function meeting_users() { 
     return $this->hasMany('App\UserMeetingDetails', 'meeting_id', 'id'); 
    } 

Контроллер выглядит так:

$res = Meetings::with('meeting_comments', 'meeting_users') 
         ->select('')->get()->toArray(); 

Мне нужно только comments от meeting_comments и user_id от meeting_users. Что мне помещать в select, чтобы получить только необходимые поля от meeting_comments и meeting_users ??

ответ

1

Вы делаете это через замыкание в с вызовом:

$res = Meetings::with(['meeting_comments' => function($query) { 
     $query->select('comments', 'meeting_id'); 
    }, 'meeting_users' => function($query) { 
     $query->select('user_id', 'meeting_id'); 
    }]) 
    ->get()->toArray(); 

Я беру это из памяти, так что синтаксис может быть немного неправильно, но он должен работать. :)

+0

Внешний ключ должен быть добавлен к выбору, иначе Laravel не сможет сопоставить связанные коллекции друг с другом. – patricus

+0

@patricus А, я вижу. Спасибо за исправление. Если вы хотите опубликовать лучший ответ, я удалю свой. –

+0

Нет, ваше хорошо. Просто нужно добавить поле «meeting_id» для обоих вариантов. :) – patricus

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