1

私は Yii を初めて使用し、ホームページにユーザーのリストを表示しようとしていますが、そうしている間にエラーが発生します: プロパティ "CListView.userlist" が定義されていません。コード: SiteController.php

class SiteController extends Controller {
    // This is the function which I changed reset is file remains same
    public function actionIndex() {
        $userlist = User::model()->findAllBySql($sql);
        $this->render('index',array('userlist'=>$userlist,));
    }
}

サイトを表示するためのコード index.php:

$this->widget('zii.widgets.CListView', array(
    'userlist'=>$userlist,
    'itemView'=>'_view',
    ));

最後の _view.php では:

echo CHtml::encode($data->getAttributeLabel('id'));

現在、コードでエラーが発生しています: プロパティ "CListView.userlist" が定義されていません。しかし、$userlist を $dataProvider に置き換えると、エラーは次のように変わります。 107"

2 つの質問があります。

  1. $dataProvider には特別な意味があるようですが、その理由を教えてください。
  2. $userlist を SiteController から index.php に渡し、次に $this->widget() に渡していますが、_view.php では変数が $data に変わります。何が欠けていますか? Yii サイトのドキュメントを読みましたが、これについていくことができませんでした。
4

2 に答える 2

1

ユーザーリストを挿入した dataprovider の代わりにある ClistView の構文に間違いがあり、そのためにエラーが発生していますundefined userlist

これはあなたの構文です

$this->widget('zii.widgets.CListView', array(
    'userlist'=>$userlist,
    'itemView'=>'_view',
    ));

正しい構文は次のとおりです

$this->widget('zii.widgets.CListView', array(
    'dataprovider'=>$userlist,
    'itemView'=>'_view',
    ));

Daniel Vaquero$userlistが提供する手順に従って、適切に定義するには有効なデータプロバイダーである必要があります

于 2013-08-08T12:54:29.323 に答える