Красноречивый доступ к массиву внутри объекта - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть формула get, которая возвращает некоторые вложенные отношения в массиве. Мне было интересно, как получить к ним доступ в операторе where.

Начальное значение get

$taken = UserWork::with('work.place')
            ->with('user')
            ->with('work.timeslot')
            ->get();

Я пытался что-то вроде этого

$taak = $taken->where('work.timeslot[0].start_hour',"17:00:00")->first();

json результат из $ принято

json result from $taken

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Использование with приведет к двум запросам. если вы хотите привести пользователя с временным интервалом null, тогда нет необходимости добавлять whereHas

    $callback = function($query) {
        $query->where('start_hour',"17:00:00");
    };

    $taken = UserWork::whereHas('work.timeslot', $callback)
        ->with(
            ['work.place', 'user', 'work.timeslot' => $callback]
        )->get();
0 голосов
/ 30 апреля 2020

Попробуйте это

$taken = UserWork::with(['work.place','user','work.timeslot'])
            ->where(do the stuffs)
            ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...