Если у меня есть properties
стол и 2 другие таблицы:Получить указанную запись из belongsToMany отношения Laravel
*property_characteristics
- property_id (i.e. 1)
- characteristic_id (i.e. 5 - join with default_characteristics)
- value (i.e. 3 - aka 3 rooms)
*default_characteristics
- id (i.e. 5)
- name (i.e. rooms)
В модели Property.php у меня есть:
public function characteristics()
{
return $this->belongsToMany('Proactiv\DefaultCharacteristic', 'property_characteristics', 'property_id', 'characteristic_id');
}
Как я могу получить номер (стоимость от свойств собственности) для имущества, начиная с:
$property = Properties::find(1);
Я бы не стал что-то вроде этого в поле зрения:
$property->characteristics->rooms // should return 3 which is the value columns on property_characteristics table
Я использовал 'getCharacteristic', потому что у меня есть динамические фильтры. Спасибо. –
Еще одно замечание, что я использовал 'first()' в своем ответе. Я не знаю, есть ли у вас две характерные записи для одного и того же свойства с тем же именем, но если это так, вы получите только один из них. – tremby
Другое дело, если вы не * всегда * хотите получить сводные данные 'value', вы можете переместить вызов' withPivot' в метод 'getCharacteristic'. Затем он будет применяться только к запросам, генерируемым этим методом. – tremby