Я застрял в данный момент и надеюсь, что кто-то может дать мне руку. Я использую полиморфное отношение и хочу найти в моей базе данных строки, которые удовлетворяют условиям в родительской и дочерней таблицах.
Чтобы получить конкретные, один небольшой пример. Учитывая следующую структуру, я, например. хотите найти недвижимость с ценой 600 и номерами 3. Есть ли способ сделать это с красноречивым?
Столы
Свойства таблицы (родительская)
- id
- цена
- details_type [может быть Квартира или Участок]
- details_id
Апартаменты-таблицы (дочерние)
- id
- номера
Участки стола (дочерние)
- id
- ... (нет столбца "комнаты")
Отношения
Свойство класса
public function details() {
return $this->morphTo();
}
Классы Квартира + Участок
public function property() {
return $this->morphMany('Property', 'details')
}
Что я пробовал
Много, правда. Но почему-то я всегда что-то делаю не так или что-то упускаю. Решения, которые, на мой взгляд, должны работать:
Property::with(array('details' => function($query) {
$query->where('rooms', 3);
}));
or
Property::with('details')
->whereHas('details', function($query) {
$query->where('rooms', '=', '3');
});
Но в обоих случаях я получаю следующее FatalError.:
Class name must be a valid object or a string
У кого-нибудь из вас уже была подобная проблема? Большое спасибо за любую подсказку.