Как получить все свойтсва (атрибуты) модели в прикрепленном поведении?

Собственно вот поведение

use yii\base\Behavior;
class ExportBehavior extends  Behavior
{
    public $attributes;

    public function export(){
        return $this->attributes;
    }
}

вот так подключаю
public function behaviors() {
		return [
			'export'=>[
				'class'=>ExportBehavior::class,
				'attributes'=>$this->attributes,
			]
		];
	}

получаю такой массив
array (size=10)
  'id' => null
  'firstname' => null
  'lastname' => null
  'middlename' => null
  'phone' => null
  'state' => null
  'date' => null
  'comment' => null
  'created_at' => null
  'updated_at' => null


хотелось бы что бы все атрибуты были заполнены данными конкретной модели. Что я делаю не так ?
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Вы передаете атрибуты в момент прикрепления поведения к модели, а в это время они не заполнены. Если хотите получать актуальные данные - обращайтесь к атрибутам модели в самом поведении с помощью свойства owner
например:
class ExportBehavior extends  Behavior
{
    public $attributes;

    public function export(){
        return $this->owner->attributes;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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