Laravel 5.8 - получить значения из результата выщипывания

Мне нужна помощь, чтобы этот код заработал. После выполнения поиска с помощью программного обеспечения мой контроллер возвращает местных жителей, у которых установлено программное обеспечение, и S.O. у кого то же самое. Например, этот запрос вернет «1 2», потому что эти два изображения содержат «Google Chrome».

    $img_id = Software::where('application', $request->input('application'))->pluck('imagem_id');

И затем мне нужно перечислить всех местных жителей, у которых есть это изображение, после поиска, выполненного Программным обеспечением.

    $ambientes = Ambiente::where('imagem_id', $img_id)->get();

Но она показывает мне только местных жителей, у которых imagem_id = 1, даже если я использую foreach в поле зрения:

    @foreach ($ambientes as $value)
    <tr>
       <td>{{ $value->unidade->name }}</td>
       <td>{{ $value->bloco->name }}</td>
       <td>{{ $value->name }}</td>
       <td>{{ $value->imagem_id }}</td>
    </tr>
    @endforeach

Что мне нужно сделать, чтобы показать всем местным жителям, у которых image_id = 1 и 2 ??

Tks


person Gelbcke    schedule 11.06.2019    source источник


Ответы (2)


Как вы сказали, это

$img_id = Software::where('application', $request->input('application'))->pluck('imagem_id');

должен вернуть массив из двух идентификаторов, например:

[1, 2]

Если это ответ, вы можете использовать whereIn:

$ambientes = Ambiente::whereIn('imagem_id', $img_id)->get();

Это даст вам коллекцию обоих окружающих, при этом вид останется прежним.

person nakov    schedule 11.06.2019
comment
Спасибо чувак! Работает где. - person Gelbcke; 11.06.2019

Когда вы пытаетесь получить записи, соответствующие нескольким идентификаторам, вы не можете использовать where(), вам нужно будет использовать whereIn():

 $img_id = Software::where('application', $request->input('application'))->pluck('imagem_id');
 // This should return an array/Collection of `imagem_id` values.

 $ambientes = Ambiente::whereIn('imagem_id', $img_id)->get();

Теперь $ambientes должен содержать Ambiente записей, соответствующих всем imagem_id значениям, полученным из вашего первоначального запроса.

person Tim Lewis    schedule 11.06.2019
comment
Спасибо чувак! Работает где. - person Gelbcke; 11.06.2019