在传入模型之前解析属性值

Parse attribute value before pass in model

我想在 post 模型中实现一个内容解析器,它在将内容传递给控制器​​之前对其进行解析。所以,我认为最好的解决方案是管理它的行为,但我没有为此找到事件。

我不想将值写入数据库,但我想在将加载值传递给控制器​​之前解析它。

有什么想法吗?

我同意 Muhammad Omer Aslam 的观点,afterFind() 根据文档,

is called when the ActiveRecord object is created and populated with the query result. The default implementation will trigger an [[EVENT_AFTER_FIND]] event.

有时我需要先格式化模型的 属性,然后再将其可视化或在控制器的任何其他操作中使用它。通过覆盖模型中的 afterFind() 解决了问题。

比如要在查看某个对象之前格式化其创建日期,我们可以在对应的模型中写入如下内容。

public function afterFind()
{
    parent::afterFind();
    /* change format date */
    $parse = Yii::$app->formatter;
    $this->created_at = $parse->asDate($this->created_at, 'php:Y-m-d H:i:s');
}