Yii2如何从视图中调用控制器操作

时间:2015-04-28 05:52:32

标签: model-view-controller yii2 yii2-advanced-app

我在控制器中有一个按照我想要的方式操作数据的功能。现在我想在index.php的{​​{1}}文件中调用该函数。我该怎么做?

在我的控制器中

view

如何在视图中调用它..

function actionTesting($params){
    .....
}

3 个答案:

答案 0 :(得分:9)

您不应该从视图中调用控制器操作。我认为它违反了MVC模式。

至于错误,很清楚,$this在视图中是指yii\web\View,而不是控制器,testing方法显然不存在。

之前有similar question询问,这里有可能的解决方案( Manesh 的学分):

Yii::$app->runAction('controller/action', ['param1' => 'value1', 'param2' => 'value2']);

仅仅调用控制器动作和通常的方法调用是不够的,因为需要应用某些事件等。

我不建议使用这种方法,最好根据逻辑类型将逻辑移动到组件/模型。

答案 1 :(得分:1)

你可以使用它。

echo $this->context->testing($params); 

信用Metacrawler 原始问题link

答案 2 :(得分:0)

您可以这样做

 $parse = array(
   ...............
   'aliasName' => $this,
   ..............
);
return $this->render('viewFile',$parse);

然后您可以调用

之类的函数
<?php echo $aliasName->testing($param) ?>