在操作Yii 1.1之前将参数传递给调用的操作
我想在我的在操作Yii 1.1之前将参数传递给调用的操作,yii,yii1.x,Yii,Yii1.x,我想在我的beforeAction()中的某些操作之前创建一个简单控件 我使用beforeAction()中的参数初始化模型,然后我希望将此模型作为参数传递给指定的操作,以避免在每个相关操作中重复此代码。首先,您可以在控制器中为模型声明一个变量,如 private $model; 当然,您可以根据需要使用任何访问修饰符。现在,在beforeAction中,您可以初始化$model变量,如下所示 protected function beforeAction($action) { $th
beforeAction()
中的某些操作之前创建一个简单控件
我使用
beforeAction()
中的参数初始化模型,然后我希望将此模型作为参数传递给指定的操作,以避免在每个相关操作中重复此代码。首先,您可以在控制器中为模型声明一个变量,如
private $model;
当然,您可以根据需要使用任何访问修饰符。现在,在beforeAction中,您可以初始化$model
变量,如下所示
protected function beforeAction($action)
{
$this->model = new MyModel();
return parent::beforeAction($action);
}
现在,您可以通过$this->model
访问任何控制器操作中的初始化变量。但是,如果您想初始化特定于任何操作的$model
变量,则可以按如下操作
protected function beforeAction($action)
{
if($action->id == "index")
{
$this->model = new MyModel();
} else {
$this->model = new OtherModel();
}
return parent::beforeAction($action);
}
我将这个答案添加到那些寻找这个问题的人身上。 完成必要的控制后,您只需调用$acction->runWithParams即可
protected function beforeAction($action)
{
return parent::beforeAction($action->runWithParams(['param1' => $param1]));
}