行为和事件配合使用的问题 [ 2.0 版本 ]
我在继承自 ActiveRecord
的 User
模型类中绑定了自定义行为类文件,在此行为类文件中,重写了 events
方法,如图所示:
<?php
namespace frontend\components;
use yii\base\Behavior;
use yii\base\Event;
use yii\db\ActiveRecord;
class FlyBehavior extends Behavior
{
public $title;
public function events()
{
return [
/**
* 这两种方式都可以触发myBeforeInsert方法
*/
//ActiveRecord::EVENT_BEFORE_INSERT => [$this, 'myBeforeInsert'],
//ActiveRecord::EVENT_BEFORE_INSERT => 'myBeforeInsert',
];
}
public function myBeforeInsert(Event $event)
{
echo '<pre>1212<br>';
var_dump($event);
echo "1212";
return true;
}
}
现在我想知道的是:可以把 events
方法返回的数组中的键改为自定义事件名字吗?不想使用系统自带的事件,如何可以应该如何修改?谢谢
最佳答案
-
比如你的组件里自定义了一个事件名称:
const EVENT_DANCE = 'dance';这个组件里的dance方法会触发该事件:
public function dance(){ echo 'dance'; $this->trigger(self::EVENT_DANCE); }
你的自定义行为里就可以使用自定义的事件名字了,比如:
public function events(){ return [ Result::EVENT_DANCE => 'myBeforeInsert', ]; }
共 2 条回复1259814898 回复于 2020-01-08 15:34 回复这个Result类是怎么来的?谢谢
@1259814898
Result是你自己的组件对象,比如是个表模型,随意~
其他 0 个回答
没有找到数据。
1259814898 山东烟台
注册时间:2015-11-13
最后登录:2020-02-13
在线时长:1小时35分
最后登录:2020-02-13
在线时长:1小时35分
- 粉丝0
- 金钱20
- 威望0
- 积分30