New_Horizons
@New_Horizons
Бред:

Как изменить названия полей модели при select?

Есть модель Eloquent и связанная с ней таблица. В ней есть поле, допустим "PROPERTY_155".

Как сделать так, чтобы я указывал в методе select поле "VENDOR", но запрос уходил с выбором поля "PROPERTY_155".

С помощью переопределения метода getAttribute удалось сделать обращение по нужному ключу, но никак не могу провернуть тоже самое с select.

$rows = ProductProperty::select(['PROPERTY_155', 'PROPERTY_77'])
	->where('IBLOCK_ELEMENT_ID', '=', 26072)
	->get();

$row = $rows->first();

var_dump($row->VENDOR);         //string(5) "18980" это значение содержится в поле PROPERTY_155
var_dump($row->VENDOR_COUNTRY); //string(3) "475"  это значение содержится в поле PROPERTY_77


//так переопределяю названия полей в модели ProductProperty, при обращении к ним
public function getAttribute($key)
{
	if (!self::$propertyNames) {
		$this->setPropertyNames();
	}

	if (isset(self::$propertyNames[$key])) {
		$key = 'PROPERTY_' . self::$propertyNames[$key]['ID'];
	}

	return parent::getAttribute($key);
}
  • Вопрос задан
  • 569 просмотров
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
ProductProperty::select(['PROPERTY_155 as VENDOR', 'PROPERTY_77'])...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы