2015-11-10 9 views
1

В настоящее время мне приходится вручную обращаться к отношениям каждого события.Как связывать Laravel 5.1 (один-ко-многим)? Красноречивые отношения ORM?

см ниже:

$events = Events::where('status', '!=', 'passed')->orderBy('created_at', 'desc')->take(20)->get(); 
    foreach ($events as $event) { 
     $responses = Events::findOrFail($event->id)->responses()->where('user_id', '=', '1')->first();//TODO user_id hardcoded 

     if($responses) echo "The event has a response that belongs to the user"; 
      else echo "The event doesnt have a response for that user"; 


    } 

Есть ли способ цепи "События ::" Красноречивый ORM недавно полностью?

Сообщите мне, если вам нужно посмотреть модели, хотя это довольно стандартный.

ответ

0

проверено ::with от http://laravel.com/docs/5.1/eloquent-relationships? Использования нетерпеливых ограничений загрузки, он будет выглядел

$events = Events::with(['response' => function($query) use($user_id){ 
             $query->where('user_id', '=', $user_id); 
             } 
         ])->where('status', '!=', 'passed') 
         ->orderBy('created_at', 'desc') 
         ->take(20)->get(); 

Однако, я не уверен, как сделать первый элемент стесненного нетерпеливога нагрузки. Попытайтесь поиграть с ним больше. Laravel Eager Load with dynamic constraints

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