小程府 2016-12-07 18:30:15 9342次浏览 1条回复 2 3 0

yii2 常用的before和after事件:

beforeAction afterAction 方法 前后被调用的方法 beforeFilter afterFilter 过滤 前后被调用的方法 beforeRender afterRender 输出 前后被调用的方法 beforeValidate afterValidate 校验 前后被调用的方法 beforeSave afterSave 这两个将在保存 AR 实例之前和之后被调用 beforeDelete afterDelete 这两个将在一个 AR 实例被删除之前和之后被调用 beforeLoad afterLoad Integrity 开关 before为false after为true beforeUnload afterUnload Integrity 开关 before为false after为true beforeSend afterSend 邮件发送前后被调用的方法 beforeLogin afterLogin 用户成功登录前后被调用的方法 beforeLogout afterLogout 用户成功登出前后被调用的方法

觉得很赞
  • 回复于 2017-02-23 11:13 举报

    “beforeSave afterSave 这两个将在保存 AR 实例之前和之后被调用”

    那如果更新呢?

    	public function beforeSave($insert)
    	{
    		if (parent::beforeSave($insert)) {
    			var_dump('beforeSave--true--');
    			return true;
    		} else {
    			var_dump('beforeSave--false--');
    			return false;
    		}
    	}
    
    

    我这么写 却只有在添加数据的时候有被调用 数据被修改时的->save()中并没有调用到。

    1 条回复
    回复于 2017-02-24 09:21 回复

    你可以试试这个

    public function beforeSave($insert, $changedAttributes)
    {
            parent::afterSave($insert, $changedAttributes);
    	if (insert) {
    		var_dump('添加');
    	} else {
    		var_dump('更新');
    	}
    }
    
您需要登录后才可以回复。登录 | 立即注册