私は以下の表を持っています。yii 'through' relation search
User:
---------
id<br>
firstName
Project:
---------
id<br>
Name
StaffingManager
---------------
id<br>
User_id(FK)<br>
Total_Staff<br>
StaffingProjectMonth
-----------------------
id<br>
Project_id(FK)<br>
StaffingManager_id(FK)<br>
私はStaffingProjectMonthモデルの関係を定義するには、
これは、使用してYIIによって定義されたデフォルトの関係で、私はプロジェクト名を取得し、プロジェクト名で検索することができました
public function relations()
{
return array(
'project' => array(self::BELONGS_TO, 'Project', 'Project_id'),
'staffingManager' => array(self::BELONGS_TO, 'StaffingManager', 'StaffingManager_id'),
);
}
GII 。
私はUserFirstNameを取得してそれで検索したいと思います。
私はこのように関係を定義しました。
return array(
'project' => array(self::BELONGS_TO, 'Project', 'Project_id'),
'staffingmanager' => array(self::BELONGS_TO, 'StaffingManager', 'StaffingManager_id'),
'user'=> array(self::HAS_MANY,'User',array('User_id'=>'id'),'through'=>'staffingmanager'),
);
と検索方法で私はこれでした:プロジェクト名の作品からのみ検索
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'staffing-project-month-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
// 'id',
array('name'=>'Project_id','header'=>'Project','value'=>'$data->project->Name',),
array('name'=>'StaffingManager_id','header'=>'User','value'=>'$data->staffingmanager->user->firstName',),
..............
:
$criteria->with = array('project','user');
//$criteria->compare('id',$this->id);
$criteria->compare('Name',$this->Project_id,true);
$criteria->compare('firstName',$this->StaffingManager_id,true);
やビュー内を。 UserfirstNameはセッションできますが、firstNameで検索することはできません。関係を定義することに間違いがあります。
何か助けていただければ幸いです。ありがとう。関連するモデルで検索する方法を説明し