2020-01-07 15:55:35 1296次浏览 1条回答 0 悬赏 10 金钱

我在继承自 ActiveRecordUser 模型类中绑定了自定义行为类文件,在此行为类文件中,重写了 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 方法返回的数组中的键改为自定义事件名字吗?不想使用系统自带的事件,如何可以应该如何修改?谢谢

最佳答案

  • 花椒 发布于 2020-01-08 11:16 举报

    比如你的组件里自定义了一个事件名称:
    const EVENT_DANCE = 'dance';

    这个组件里的dance方法会触发该事件:

    public function dance(){
        echo 'dance';
        $this->trigger(self::EVENT_DANCE);
    }
    
    

    你的自定义行为里就可以使用自定义的事件名字了,比如:
    public function events()

    {
        return [
            Result::EVENT_DANCE => 'myBeforeInsert',
        ];
    }
    
    2 条回复
    回复于 2020-01-08 15:34 回复

    这个Result类是怎么来的?谢谢

    回复于 2020-01-09 09:12 回复


    Result是你自己的组件对象,比如是个表模型,随意~

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
1259814898
试用期

1259814898 山东烟台

注册时间:2015-11-13
最后登录:2020-02-13
在线时长:1小时35分
  • 粉丝0
  • 金钱20
  • 威望0
  • 积分30

热门问题