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

beg*_*ner 4 model-view-controller yii2 yii2-advanced-app

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

在我的控制器中

function actionTesting($params){
    .....
}
Run Code Online (Sandbox Code Playgroud)

如何在视图中调用它...

<?php
   echo $this->testing($params);//Calling unknown method: yii\web\View::testing()
?>
Run Code Online (Sandbox Code Playgroud)

aro*_*hev 9

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

至于错误,很明显,$this在视图中指的是yii\web\View,testing那里显然不存在控制器和方法.

之前有类似的问题,这里有可能的解决方案(Manesh的学分):

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

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

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