Laravel Backpack Query Builder выбирает значение или имеет значение null - PullRequest
0 голосов
/ 14 мая 2018

Я использую рюкзак CRUD для laravel, и я пытаюсь запросить мою базу данных.Моя проблема в том, как я могу объединить таблицы по значениям или нулю?

это то, что я хочу

  select * from `baskets`
   inner join `users` on `baskets`.`donor_id` = `users`.`id`
   inner join `users` as `ass` on `baskets`.`association_id` = `ass`.`id` or `baskets`.`association_id` is null
   where `users`.`_lft` >= 1 and `users`.`_rgt` <= 1000
   group by `baskets`.`basket_id`
   order by `baskets`.`basket_id` desc, `end_removal_date` desc

И это то, что я пытаюсь сделать с помощью построителя запросов

   $this->crud->query->join('users', 'baskets.donor_id', '=', 'users.id');

    $this->crud->query->join('users as ass', function($join){
        $join->on('baskets.association_id', '=', 'ass.id');
        $join->orOn('baskets.association_id', 'is', \DB::raw('null');
    }

    $this->crud->addClause('where', 'users._lft', '>=', Auth::user()->_lft);
    $this->crud->addClause('where', 'users._rgt', '<=', Auth::user()->_rgt);

Конечно не работает.У вас есть идея?

Спасибо

1 Ответ

0 голосов
/ 14 мая 2018

Используйте это:

$join->orWhereNull('baskets.association_id');
...