在传入模型之前解析属性值
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');
}
我想在 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');
}