在动作Yii 1.1之前将参数传递给调用的动作

5lwkijsr  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(181)

我想在我的beforeAction()中的某个操作之前创建一个简单的控件。
我用beforeAction()中的参数初始化了一个模型,然后我想把这个模型作为参数传递给指定的操作,以避免在每个相关的操作中重复这个代码。

jgovgodb

jgovgodb1#

首先,您可以在控制器中为模型声明一个变量,如下所示

private $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);
}
wljmcqd8

wljmcqd82#

我把这个答案添加到那些搜索这个问题的人中。在做了必要的控制之后,你可以只调用$action-〉runWithParams。

protected function beforeAction($action)
{
    return parent::beforeAction($action->runWithParams(['param1' => $param1]));
}

相关问题