プロジェクト モデルの Yii の管理者ビューに取り組んでいます。
フィルター付きの列の 1 つは、プロジェクトのユーザー (所有者) です。
私はこのようなことができます:
'filter'=> CHtml::dropDownList('Project[user_id]', $model->user_id,
CHtml::listData(User::model()->orderAsc()->findAll(),
'id','username'),array('empty'=>'(select)')),
これにより、user テーブル内のすべてのユーザーのリストが得られますが、プロジェクトを所有する個別のユーザーをプルするものを作成したいと考えています (200 人のユーザーがいますが、プロジェクトを作成する傾向があるのはほんの一握りです)。
プロジェクトとユーザーは次の方法で関連付けられています。
'user' => array(self::BELONGS_TO, 'User', 'user_id')
findAll() メソッドで一連のオプションを試しましたが、どれも機能しませんでした。スコープで何かをしようとしていません。
これまでのところ、私はこれを試しました:
'filter'=> CHtml::dropDownList('Project[user_id]', $model->user_id,
CHtml::listData(Project::model()->with('user')->ownerUsernames()->
findAll(), 'id','username'),array('empty'=>'(select)')),
私のスコープは次のように定義されています。
'ownerUsernames' => array(
'with' => 'user.username',
'select' => 'user.username',
'distinct' => true,
),
上記の繰り返しを何度も試しましたが、カウント 'with'=>'username' 'select'=>'username' などを失いましたが、うまく動作しないようです。
Project::model() を $model に置き換えようとしましたが、何か関係があるのではないかと思ったからです。
どんなアイデアでも大歓迎です。Yii にとっては非常に新しいものですが、これは Yii でできることのようです。