Вопрос:

Предложение запроса с двумя whereIn

laravel

289 просмотра

2 ответа

586 Репутация автора

Я пытаюсь выполнить этот запрос, все хорошо до:

-> whereIn ('statut_licence_id', ['1', '4'])

эта секунда, где In, кажется, не работает, он отображает мне только statut_licence_id = 1, а не также 4, кто-то сейчас, как решить проблему?

        $licencies = Licencies::whereIn('structure_id', $structures->pluck('id'))->whereIn('type_licence_id', ['1', '2', '3', '4', '5'])
            ->whereIn('statut_licence_id', ['1' , '4'])
            ->where('valid_licence_id', '1')
            ->where('lb_assurance_etat' ,'=' , 'Assurée')
            ->orderBy('created_at', 'DESC')
            ->paginate(10);

проблема решена с:

$licencies = Licencies::whereIn('structure_id', $structures->pluck('id'))->whereIn('type_licence_id', ['1', '2', '3', '4', '5']) ->where(function ($query) {
            $query->whereIn('statut_licence_id', ['1' , '4'])
            ->where('valid_licence_id', '1'); })
            ->orderBy('created_at', 'DESC')
            ->paginate(10);
Автор: Mathieu Mourareau Источник Размещён: 14.04.2017 08:46

Ответы (2)


1 плюс

1566 Репутация автора

Вы можете выполнить следующие шаги для проверки вашего запроса:

Во-первых, перед утверждением:

DB::enableQueryLog();

во-вторых, используйте ddдля печати вашего sql после утверждения:

dd(DB::getQueryLog());

наконец, скопируйте и вставьте sql в свой клиент базы данных, и вы получите то, что хотите. И вам не нужно спрашивать кого-то с подобным снова.

Автор: Cong Chen Размещён: 14.04.2017 08:56

2 плюса

5371 Репутация автора

Решение

попробуйте использовать замыкание.

$licencies = Licencies::whereIn('structure_id', $structures->pluck('id'))->whereIn(function ($query){
             $query->whereIn('type_licence_id', ['1', '2', '3', '4', '5'])
            ->whereIn('statut_licence_id', ['1' , '4']);
        })
        ->where('valid_licence_id', '1')
        ->where('lb_assurance_etat' ,'=' , 'Assurée')
        ->orderBy('created_at', 'DESC')
        ->paginate(10);
Автор: Anar Bayramov Размещён: 14.04.2017 08:57
Вопросы из категории :
32x32