Мне нужно получить все данные «Prestation» со статусом «Disponible» и получить «first_name» и «last_name» соответствующего пользователя Items.
У меня есть три таблицы, первая - «Prestations»:
- _id
- имя
- цена
- создано в
- updated_at
Второй - «Предметы», где мне нужно только проверить статус:
- _id
- количество
- status ‹**** ---- "Disponible"
- prestation_id
- user_id
Последняя таблица - «Пользователи», где мне нужны first_name и last_name:
- _id
- имя
- фамилия
Модель Prestation.php:
public function item()
{
return $this->hasMany('App\Models\Item');
}
Модель Item.php:
public function prestation()
{
return $this->belongsTo('App\Models\Prestation');
}
Модель User.php
public function items()
{
return $this->hasMany('App\Models\Item');
}
Я прочитал документацию Laravel и попробовал что-то вроде:
/**
// * @param Request $request
// * @return mixed
// */
public function prestationsListAvailables(Request $request, $conciergerie_select_id = null)
{
$available = 'Disponible';
$prestations = Prestation::with('item')
->whereHas('item', function($query) use ($available) {
$query->whereIn('status', $available);
})
->get();
return $prestations;
}
Но на этом этапе ничего не работает. Я тоже пробовал просто это, и это работает:
/**
* @param Request $request
* @return mixed
*/
public function prestationsListAvailables(Request $request, $conciergerie_select_id = null)
{
$prestations = Prestation::with([
])
->get();
return $prestations;
}
Здесь я получаю все «Prestations», но мне нужно проверить, доступен ли статус, и получить first_name и last_name соответствующего пользователя. Спасибо за помощь.