всем привет
мне нужно добавить в ответ новое поле, которого нет в таблице
в модели, атрибут добавлен
в методе модели отвечающей за возврат данных запрос сформирован, с возвратом нового поля
если пользуюсь моделью вне АПИ - все хорошо = поле доступно как атрибут
если использую модель в апи - это поле равно null
что делаю не так?
добавить новое поле в ресурсы
Re: добавить новое поле в ресурсы
А в fields() его прописали?
Re: добавить новое поле в ресурсы
теперь прописалElisDN писал(а):А в fields() его прописали?
вот так
Код: Выделить всё
// add new field
$fields['url'] = function () {
return $this->url;
};
листинг модели-ресурса
Код: Выделить всё
/**
/**
* new field
*/
public $url;
/**
* add new attribute
*/
public function attributes()
{
return array_merge(
parent::attributes(),
['url']
);
}
/**
* only url, name and id
*/
public function infoShort ()
{
$sql = "SELECT "
. "`id_art`, "
. "`name`, "
. "CONCAT('/articles/one/',`id_art`,'.html') AS 'url' "
. "FROM `articles` "
. "WHERE `show` = 'yes'";
$data = parent::findBySql($sql)->all();
return $data;
}
/**
* cusomize fields
*/
public function fields()
{
$fields = parent::fields();
// add new field
$fields['url'] = function () {
return $this->url;
};
// remove some fields
unset($fields['dt'], $fields['show']);
return $fields;
}
Re: добавить новое поле в ресурсы
странное дело - все заработало, когда удалил новое поле из оверрайда атрибутов
где добавляю новое поле url
так и должно быть?
вот так все работает
а так - не работает
где добавляю новое поле url
так и должно быть?
вот так все работает
Код: Выделить всё
public function attributes()
{
return array_merge(
parent::attributes()
);
}
Код: Выделить всё
/**
* add new attribute
*/
public function attributes()
{
return array_merge(
parent::attributes(),
['url']
);
}