我想在发布模型中实现内容解析器,该模型在将内容传递给控制器之前先对其进行解析。因此,我认为最好的解决方案是管理该问题的一种方式,但是我没有找到解决此问题的方法。
我不想将值写入数据库,但是我想在将加载的值传递给控制器之前先对其进行解析。
有什么主意吗?
答案 0 :(得分:2)
根据文档,我同意穆罕默德·奥默·阿斯兰(afterFind()
创建ActiveRecord对象并使用查询填充时调用结果。默认实现将触发 [[EVENT_AFTER_FIND]]事件。
有时候,在可视化模型的属性或将其用于控制器的任何其他操作之前,我需要格式化模型的属性。通过在模型中覆盖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');
}