2015-04-28 60 views
3

我在控制器中有一個按照我想要的方式操縱數據的函數。現在我想在viewindex.php文件中調用該函數。我怎麼做?YII2如何從視圖調用控制器操作

在我的控制器

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

我怎樣才能把它在視圖中如..

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

回答

7

你不應該從調用視圖控制器的動作。我認爲這違反了MVC模式。

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

similar question問過,這裏是可能的解決方案(學分Manesh):

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

這是不夠的,只是呼叫控制器行動如常法調用,因爲一些事件需要應用,等等。

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

1

你可以使用這個。

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

學分Metacrawler 原來的問題link

+0

這一個是短,但仍然是一個不好的做法。 – arogachev

+1

而且我不確定在這種情況下是否會應用事件。 – arogachev

相關問題