0

ウィジェットを作成したいのですが、私が行った手順は次のとおりです。

  • 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
4

1 に答える 1

2

thenを使用してウィジェットにアクセスする場合$this->widget('application.widgets.Alert');、ウィジェット クラス名はAlert(like: public class Alert extends CWidget...) にする必要があり、ファイル名はそのままにする必要があります。Alert.php

于 2013-10-09T14:37:26.517 に答える