@AlikDex

Yii2, к объекту ActiveRecord можно добавить свое свойство?

Точнее не к самому объекту, а к атрибутам коллекции этого объекта. Т.е. по ходу дела вычисляю дополнительные параметры от записи из базы, и хотелось бы добавить их в AR, чтоб потом через стандартные виджеты отобразить, с сортировкой. Надеюсь понятно объяснил.
  • Вопрос задан
  • 897 просмотров
Решения вопроса 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Понятно объяснили.
Просто добавьте внутри класса свои свойства.
К примеру
<?php
//Не забудьте о неймспейсах
//...
class User extends ActiveRecord
{
public $test;
//остальной код...
}

Таким образом вы сможете записывать и брать данные с test. Кстати, можно и записать потом "test" у валидаторы, в attributeLabels и прочее.
Единственное отличие - они не сохранятся в базу данных (так как некуда), и уже после валидации или сохранения об этих данных нужно подумать самому.

Можно сгенерировать поле автоматически с помощью переписывания метода afterFind() (почитайте документацию). На счет сортировки могут быть тонкости, но насколько я понимаю, все должно быть довольно хорошо, правда придется расширить класс сортировки и указать его поведение при использовании этого свойства. Для этого почитайте документацию по объекту сортировки \yii\data\Sort
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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