Я хочу запросить 3 отдельные таблицы одновременно. Основным является Criteria
, два has Many
таблицы, связанные criteria_id
являются Bedrooms
а также Properties
,
Criteria
может иметь много Bedrooms
и много Properties
:
Модель критериев
public function bedrooms()
{
return $this->hasMany('Bedroom');
}
public function properties()
{
return $this->hasMany('Property');
}
Я не уверен, если это возможно, но я хочу запросить обе эти таблицы, а также Criteria
чтобы увидеть, какие критерии имеют определенную спальню и определенный тип недвижимости. Обратите внимание, что может быть несколько спален и свойств, сохраненных для каждого критерия_идентификатора.
Пока что мой запрос:
$criterias = Criteria::select('id')
->where('min', '<=', Input::get('single_value'))
->lists('id');
Мое единственное логическое объяснение —
Получить все критерии, где мин <= Значение и Критерии. Спальни = 1 и
Criteria.Properties = 5.
Как если бы перебрать и посмотреть, есть ли у критерия спальня / свойство с сохраненным этим значением.
Большое спасибо за вашу помощь.
Если вы ищете только критерии, которые соответствуют вашим ограничениям, вы можете использовать whereHas()
на спальне и имущественных отношениях. Затем добавьте свой where()
а также lists()
,
$bedroom_id = '1';
$property_id = '5';
$criteria = Criteria::whereHas('bedrooms', function($q) use ($bedroom_id) {
$q->where('bedroom', $bedroom_id);
})->whereHas('properties', function($q) use ($property_id) {
$q->where('property', $property_id);
})->where('min', '<=', Input::get('single_value'))->lists('id');
Criteria.Bedrooms = 1 and Criteria.Properties = 5
было немного расплывчато, но я добавил это туда, куда они должны идти. Я предполагаю, что вы на самом деле имели в виду id
из 1
а также 5
соответственно, поэтому будут получены все критерии, которые имеют спальню с идентификатором 1 и свойством с идентификатором 5.
Пытаться Нетерпеливая загрузка отношения
$criterias = Criteria::with('bedrooms', 'properties')
->where('min', '<=', Input::get('single_value'))
->lists('id');