Laravel - Скрывать parent, когда связь возвратится null

Поскольку он мог бы знать, возвращается ли моя связь null и убирать это от array.

$canal = session()->get('canal')['type'];
        $layouts = PlanogramacionLayoutCreated::with(['layout' => function($q) use($canal) {
           $q->where('canal', 'LIKE', '%'. ucfirst($canal). '%');

        }])
        ->get();

Я получаю данные Модели отец, присоединяются Ваши дети layouts но у меня есть valicación в сыне, чтобы делать фильтр из-за канала и Вашего совпадения.

Я хочу знать, как я могу скрывать отец, в случае, если связь придет пустая:

[
 {
  id: 1,
  layout_id: 12,
  img: "dasjdksajd8123123MDAs.jpg",
  layout: null
 }
]

Поскольку я могу идентифицировать если layout он приходит null, и если это так, это не добавили к моим objectos. Что я могу делать это с одним foreach но я думаю, что она не была бы хорошей практикой, и вот то, что я ищу.

1
задан 06.11.2019, 21:35
1 ответ

Ты можешь ограничивать результаты в funciГіn существование ее relaciГіn перемещая имя ее relaciГіn в них mГ©todos has и orHas. Использует их mГ©todos whereHas и orWhereHas, чтобы помещать условия "where" в твои консультации has. Эти mГ©todos позволяют тебе добавлять ограничения, настроенные в одной restricciГіn relaciГіn.
то, что для тебя cГіdigo traducirГ - в в:

$layouts = PlanogramacionLayoutCreated::whereHas('layout', function (Builder $query) use ($canal) {
    $query->where('canal', 'LIKE', '%'. ucfirst($canal). '%');
})
->with(['layout'])
->get();
2
ответ дан 01.12.2019, 12:30
  • 1
    Превосходный, что он искал. Привет! – DoubleM 09.11.2019, 01:22

Теги

Похожие вопросы