0
我在Yii框架的一個問題,我想打電話給控制器的佈局/ main.php頁這是屬於siteController動作,我這樣做:呼叫控制器在另一個控制器動作,使部件
$a = UsersController::actionRequestAlert($s);
然後我得到這個錯誤:
Non-static method UsersController::actionRequestAlert() should not be called statically, assuming $this from incompatible context
所以我怎麼能解決這個問題?
OK, 現在我想創建一個小部件,這裏是我做的步驟:在文件夾
- 創建的文件夾「小部件」「保護」。
- 在文件夾「窗口小部件」中創建了文件夾「視圖」。
'application.widgets.*'
這是窗口小部件的代碼/ Alert.php:
- 在配置/ main.php加入此
類AlertWidget延伸CWidget { 公共$警報= NULL;
private $_data = null; public function init() { $s = Yii::app()->session['userId']; $r = Requests::model()->findAll('idUser='.$s.' and confirm =0 and unconfirm=0 and cancel=0'); $i=0; foreach($r as $x) $i++; if($i<=0) $alert=null; else $alert="(".$i.")"; $this->_data = new CActiveDataProvider($alert); } public function run() { $this->render('alert', ['data' => $this->_data]); }
}
這是窗口小部件/視圖/ alert.php的代碼:
回波$數據;
這是代碼對如何使用窗口小部件在一個視圖中:
$這 - >部件( 'application.widgets.Alert');
最後我得到了這些錯誤:
(!) SCREAM: Error suppression ignored for
(!) Fatal error: Cannot redeclare class AlertWidget in C:\wamp\www\mediastore\protected\widgets\Alert.php on line 27
http://stackoverflow.com/questions/ 10766608 /調用函數從佈局視圖文件在yii – redGREENblue
在siteController中創建一個方法,它調用userController方法。不要稱之爲靜態(意味着,使用關鍵字「新」的對象) – mondjunge
views不要調用動作,動作渲染視圖! – Sidux