簡體   English   中英

Yii2如何從視圖中調用控制器操作

[英]Yii2 How to call controller action from the view

我在控制器中有一個按照我想要的方式操作數據的功能。 現在我想在view中的index.php文件中調用該函數。 我怎么做?

在我的控制器中

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

如何在視圖中調用它...

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

您不應該從視圖中調用控制器操作。 我認為它違反了MVC模式。

至於錯誤,很明顯, $this在視圖中指的是yii\\web\\View ,而不是控制器和testing方法顯然不存在。

之前有類似的問題 ,這里有可能的解決方案( Manesh的學分):

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

僅僅調用控制器動作和通常的方法調用是不夠的,因為需要應用某些事件等。

我不建議使用這種方法,最好根據它的類型將邏輯移動到組件/模型。

你可以用它。

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

信用Metacrawler原始問題鏈接

你可以這樣做

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

而且你可以像這樣調用函數

<?php echo $aliasName->testing($param) ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM