Я хотел бы вызвать некоторые события в моей модели, если я зарегистрирую свои события через app-> on в index.php
, тогда я не получаю требуемый $event->data
из объекта события.Как регистрировать события в yii2
Как регистрировать обработчики событий, поэтому, когда я вызываю триггер, он вызывает правильную функцию с объектом события.
Пример кода:
namespace app\modules\Product\models\Product;
class Product extends Entity\Entity {
public static function tableName() {
return 'sometable';
}
public function afterFind() {
parent::afterFind();
$event = new yii\base\Event;
$event->data = $this;
$this->trigger('calculatePrice', $event);
}
}
namespace app\modules\PriceRules\models;
class PriceRules extends yii\base\Model {
public static function calculatePrice($event) {
$entity = $event->data;
}
}
//somehow register events
Вы должны прочитать эту http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#configuration-format. И жаль, но вам действительно нужно использовать события только для установления цены? – soju