У меня есть такая структура базы данных:
Мне нужно, чтобы пользователь получил только те резервирования в ReservationsSeachModel, которые находятся на складе, принадлежащем пользователю.Модель user_has_warehouse имеет функцию getUserHasWarehouse ($ user_id, $ warehouse_id) для проверки связей.Я могу получить отношения при просмотре одиночных, удалении и обновлении записей в контроллерах.Но я не могу заставить SearchModel возвращать бронирования, принадлежащие текущему пользователю.Я не могу зависеть от Reservation-> user_id, потому что это значение не является обязательным и резервирование может быть вставлено публично без user_id.Как заставить SearchModel работать должным образом, чтобы он отображал только резервирования, принадлежащие складу, где у пользователя есть склад?
ReservationsSearchModel:
$warehouse_id = User_Has_Warehouse::find()->select(['warehouse_id'])->where(['user_id' => Yii::$app->user->id]);
$freezer_type_id = Freezer_type::find()->select(['id'])->where(['warehouse_id' => $warehouse_id]);
$reservation_id = Reservation_freezer_type::find()->select(['reservation_id'])->where(['freezer_type_id'=>$freezer_type_id]);
...
$query->andFilterWhere([
'id' => $reservation_id,
'customer_id' => $this->customer_id,
'user_id' => $this->user_id,
]);
...
НоСледующее не сработало для меня.Что я делаю не так?