0
Я хочу создать виджет, вот шаги, которые я сделал:как сделать виджет в Yii
- создана папка
widgets
в папкеprotected
. - создана папка
views
в папкеwidgets
. - добавили это в
config/main.php
:'application.widgets.*'
- это код
widgets/Alert.php
:
class AlertWidget extends CWidget
{
public $alert = 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]);
}
}
- это код
widgets/views/alert.php
:
echo $data;
- это код, как я использую виджет в представлении:
$this->widget('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
Вы должны назвать файлы такими же, как имена классов. Вы имели в виду 'class Alert extends CWidget'? –
да, спасибо :) – Mohammad