2016-05-30 4 views
2

Если я добавлю предложение where в левое соединение, это предложение where, которое работает в правой таблице, я получаю только те результаты из левой таблицы, которые могут соответствовать правой таблице.Laravel Left join add where where to right table

$notifications = \DB::table('notifications') 
      ->select(\DB::raw("notifications.uuid ,images.local_path as title_image")) 
      ->leftJoin('images','images.owner_uuid', '=' ,'notifications.uuid') 
where('images.relation','=','notification_title') ; 

Как я могу добавить это предложение where влево, что не делает эту проблему?

where('images.relation','=','notification_title') ; 
+0

добавить предложение 'where' перед' leftJoin' – hjpotter92

ответ

2

В левом столбце все предложения, которые будут действовать в правой таблице, должны быть добавлены в оператор JOIN. используйте этот код

$notifications = \DB::table('notifications') 
      ->select(\DB::raw("notifications.uuid , images.local_path as title_image")) 
      ->leftJoin('images',function ($join) { 
       $join->on('images.owner_uuid', '=' , 'notifications.uuid') ; 
       $join->where('images.relation','=','notification_title') ; 
      });