Как использовать, где в запросе с внешним ключом в laravel? - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь сделать запрос, чтобы получить базу данных на основе идентификатора состояния Диспенсера. Итак, вот моя база данных:

Dispenser Table: id, state_id, town_id, name.
Marketer Table: id, state_id, town_id, fname, lname.
DistributorDispenser Table: distributor_id['foreign key to distributor table', which it doesn't matter for this example], dispenser_id['foreign key to dispenser id'].

Рассмотрим приведенный ниже запрос, который я использовал для своего спа, который vue. js & laravel, теперь я хочу изменить этот запрос, чтобы проверить состояние диспенсера получить подробную базу данных для пользователя state_id.

Я имею в виду, когда мы используем отношение, чтобы получить некоторую базу данных по отношениям, например ->detail(function name in Model), я хочу, чтобы мой запрос выполнялся там, где запрос с DistributorDispenser->dispenser->state_id для моего auth()->user()->detail()->state_id.

    return SellerCentralResources::collection(DistributorDispenser::where('state_id', auth()->user()->detail->state_id)
        ->latest()
        ->get());

1 Ответ

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

Вам необходимо использовать https://laravel.com/docs/5.8/eloquent-relationships#querying -relationhip-существование

DistributorDispenser::query()
->whereHas('dispenser',function($q){
         $q->where('state_id', auth()->user()->detail->state_id);
})
->latest()
->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...