Laravel Красноречиво, получить все данные в массиве идентификаторов с помощью whereIn? - PullRequest
0 голосов
/ 07 января 2020

Вот мой код:

$search = request()->get('search');
    $conciergerieSelect = request()->get('conciergerie');

    $services = Service::get();

    $prestations = Prestation::with([
        'service:name'
    ])
    ->whereIn('conciergerie_ids', $conciergerieSelect)
    ->where('name', 'regexp', "/$search/i")
    ->paginate(100);

    return $res = [
        'prestations' => $prestations,
        'services' => $services
    ];

Мне нужно получить все prestations, где есть conciergerie_ids, равный $conciergerieSelect.

conciergerie_ids - это таблица идентификаторов.

$conciergerieSelect - это идентификатор.

Я пытался использовать whereIn, но я получаю сообщение об ошибке: "Invalid предоставил foreach ()" Спасибо.

Ответы [ 2 ]

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

Метод whereIn, предоставленный Laravel, принимает массив в качестве второго параметра.

Пожалуйста, замените переменную $conciergerieSelect на [$conciergerieSelect] в предложении whereIn:

//...
->whereIn('conciergerie_ids', [$conciergerieSelect])
0 голосов
/ 07 января 2020

Вот рабочий код с вашей помощью:

$search = request()->get('search');
$conciergerieSelect = request()->get('conciergerie');

$services = Service::get();

$prestations = Prestation::with([
    'service:name'
])
->whereIn('conciergerie_ids', [$conciergerieSelect]) <-- 
->where('name', 'regexp', "/$search/i")
->paginate(100);

return $res = [
    'prestations' => $prestations,
    'services' => $services
];
...