tp5模型事件

可以先建一配置文件auth.php

 [
        ['after_update' => ['apply_verify|check_verify' => 1],'model'=>'user'],

    ],
    'purchase' => [
        ['after_update' => ['purchase_status' => 1]],
    ],
    'notice' => [
        ['after_update' => ['submit' => 1]],
    ],

];

再写个基类模型

toArray() : [], "after_update", $config_data);
            });
        }
        //插入后事件
        if (in_array('after_insert', $field)) {
           self::event('after_insert', function ($user) use($config_data) {
               self::updateStatus($user ? $user->toArray() : [], 'after_insert', $config_data);
            });

        }
    }   
    /**
     * 回调操作
     * @param  array   $data  数组
     * @param  string $field  标签
     * @param  array $config_data 配置信息
     * @return mixed
     */
    static public function updateStatus($data = [],$field = "after_update",$config_data = []) {
        try{
       	    $value = array_column($config_data,$field);
	        if(!$value || empty($data)) {
	            return;
	        }
	        //当前标签位配置
	        $value = end($value); 
	        //所有状态   
	        $arr = explode('|',key($value));
	        //当前监听的状态	
	        $field_status = key(array_intersect_key(array_flip($arr),$data);
	        if(isset($data[$field_status]) && $data[$field_status] == end($value)) {
	            //\push\Send::$model($data);
	            echo 11;exit;
	        }
        }catch(\Exception $e) {
       		$this->error = $e->getMessage();
       		return false;
        }
    }
}

 

你可能感兴趣的:(PHP)