我在控制器中有一個按照我想要的方式操縱數據的函數。現在我想在view
的index.php
文件中調用該函數。我怎麼做?YII2如何從視圖調用控制器操作
在我的控制器
function actionTesting($params){
.....
}
我怎樣才能把它在視圖中如..
<?php
echo $this->testing($params);//Calling unknown method: yii\web\View::testing()
?>
我在控制器中有一個按照我想要的方式操縱數據的函數。現在我想在view
的index.php
文件中調用該函數。我怎麼做?YII2如何從視圖調用控制器操作
在我的控制器
function actionTesting($params){
.....
}
我怎樣才能把它在視圖中如..
<?php
echo $this->testing($params);//Calling unknown method: yii\web\View::testing()
?>
你不應該從調用視圖控制器的動作。我認爲這違反了MVC模式。
至於錯誤,很明顯,$this
在視圖中是指yii\web\View
,而不是控制器和testing
方法明顯不存在那裏。
有similar question問過,這裏是可能的解決方案(學分Manesh):
Yii::$app->runAction('controller/action', ['param1' => 'value1', 'param2' => 'value2']);
這是不夠的,只是呼叫控制器行動如常法調用,因爲一些事件需要應用,等等。
我不推薦使用這種方法,最好根據它的類型將邏輯移動到組件/模型。
這一個是短,但仍然是一個不好的做法。 – arogachev
而且我不確定在這種情況下是否會應用事件。 – arogachev