一个控制器里如何实现在不同的action对同一个视图进行赋值? [ 2.0 版本 ]
有些会员信息,每次都需要从数据库中获取,这一块做在init里,这样就不用重复写代码了。只需要在特定的action里编辑一些单独的逻辑就可以了,但在action里render的时候的时候,由于已经不在init里面了,这时如何将信息传递给视图?(使用方法变量临时保存除外 )
public function init() {
//这里是一些全局操作,如获取用户基本信息,并赋值给相应的请求action视图
//@todo...
}
public function actionView($id)
{
$model = Post::findOne($id);
//渲染一个名称为"view"的视图
return $this->render('view', [
'model' => $model,
]);
}
以前用其它框架的时候,是在每一个方法里直接assign给视图就可以了,不存在这个问题
共 4 个回答
-
hujian2855 回答于 2015-07-03 17:29 举报
在yii\web\view命名空间下View类中, 有一个事件beforeRender这个事件, 可以组合你的输出到视图中的参数. 再利用行为 应该可以解决
共 1 条回复
cfanbo
注册时间:2015-05-23
最后登录:2015-09-10
在线时长:11小时52分
最后登录:2015-09-10
在线时长:11小时52分
- 粉丝2
- 金钱110
- 威望0
- 积分220