【问题标题】:Laravel 4 Model events. Possible to do reading, read type event after query results are set on a model?Laravel 4 模型事件。在模型上设置查询结果后可以进行读取、读取类型事件吗?
【发布时间】:2013-05-20 23:44:22
【问题描述】:

在 Laravel 4 中有用于创建、创建、更新、更新等的模型事件。

有没有人找到一种方法来做类似于阅读、阅读事件而无需破解/扩展 QueryBuilder 类?

即使不是每个人所说的事件,我也想找到一种方法来在(其中一个)查询结果被注入模型属性之前/期间/之后实现这一点。

到目前为止,我只是在我的核心/基础模型类上覆盖 getAttributeFromArray 方法,该方法有效,但显然每次您尝试获取模型中的属性/属性时都会运行逻辑(最终可能会成为代价高昂的操作) .

谢谢!

【问题讨论】:

    标签: php laravel laravel-4 laravel-3


    【解决方案1】:

    我能够通过在我的核心/基础模型类中添加和覆盖 1 个方法来实现这一点(扩展 eloquent\model)

    public static function read($callback)
    {
        static::registerModelEvent('read', $callback);
    }
    
    public function setRawAttributes(array $attributes, $sync = false)
    {
    
        parent::setRawAttributes($attributes,$sync);
    
        $this->fireModelEvent('read');
    }
    

    这样,当结果注入模型时,我的读取事件只会触发一次。而不是在模型上按 __get 调用运行事件。

    【讨论】:

      猜你喜欢
      • 2018-04-28
      • 2011-05-03
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2013-11-12
      • 1970-01-01
      相关资源
      最近更新 更多