我使用ActiveController
在Yii2中创建了一个REST API。 actionIndex
的默认实现返回所有模型。
我想要做的是在发送响应之前更改一个属性的值。
例如,我上传的图像只是其名称存储在数据库中。
在发送响应之前,我想嵌入带有图像名称的基本URL。
我是否需要覆盖整个索引方法,或者我可以在action
方法中操作单个属性?
答案 0 :(得分:3)
我认为最简单的方法是覆盖模型中的fields()
方法。假设您已为名为YourFile
的模型配置了ActiveController。如果将以下函数添加到YourFile
模型,则可以为响应中的每个模型添加完整URL:
public function fields() {
return [
'id',
'name' => function() {
return Url::base(true) . $this->name;
}
]
}
如果你这样添加它,它确实意味着模型上调用toArray()
的每个代码都会得到这个结果。如果您只希望ActiveController
发生这种情况,您可能希望扩展YourFile
模型并仅在那里包含fields()
方法,因此您可以使用ActiveController
配置{{1}}扩展版。
答案 1 :(得分:1)
我们还可以更改某些字段的显示名称:
for /f "delims=" %%a in (setting.txt) do echo %%a | find /i "compiler" && set %%a
echo Compiler value = %Compiler%
}
在此处查看完整教程: http://p2code.com/post/configuring-activecontroller-display-fields-yii-2-21