@AlikDex

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы