Невозможно получить запись, если не найдено совпадение во второй таблице в Laravel - PullRequest
0 голосов
/ 07 января 2020

Я использую laravel Я хочу получить запись из первой таблицы, даже если она не существует во второй таблице, но сейчас я получаю записи только тогда, когда они существуют в обеих таблицах:

$module=DB::table('r_module')->leftJoin('r_perm','r_perm.module_id','=','r_module.id')->where('r_perm.role_id',$id)->orWhereNull('r_perm.role_id')->get();

1 Ответ

1 голос
/ 07 января 2020

Попробуйте так:

$module=DB::table('r_module')
   ->leftJoin('r_perm','r_perm.module_id','=','r_module.id')
   ->where('r_perm.role_id', $id)
   ->orWhere('r_perm.role_id', 'IS NULL')
   ->get();

Вы также можете отладить этот запрос с помощью функции 'dd ()' следующим образом:

dd(DB::table('r_module')
   ->leftJoin('r_perm','r_perm.module_id','=','r_module.id')
   ->where('r_perm.role_id', $id)
   ->orWhere('r_perm.role_id', 'IS NULL')
   ->toSql());

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

...