助けてくれる人には、事前に感謝します。私は答えを探していますが、まだ答えを見つけていません。私は1つの行から実行されていない "ソリューション"を実行し、クラス全体を書き直しました。Yii Framework - CGridView関連の列を並べ替え
私は関係を示すために "グリッド"を持っており、検索機能を使用することができます。私が理解できないのは、ソート機能です。以下の変更が行われると、列ヘッダーはクリックできなくなります。
これは私が持っているものです。
リレーション名/ラベルは「会社、」従業員モデルのセットアップです。
表:社員 - カラム:idCompany & 表:会社 - カラム:companyNick
admin.php - VIEW
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'employee-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'name'=>'company',
'value'=>'$data->company->companyNick',
),
'lastName',
'firstName',
ETC...
Employee.php - MODEL
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
//Company Relation Search
$criteria->compare('company.companyNick',$this->company,true);
$criteria->with='company';
//stock
$criteria->compare('idEmployee',$this->idEmployee,true);
$criteria->compare('idAccount',$this->idAccount,true);
ETC...
ドロップダウンメニューを作成したくない場合は、関連する属性のattributeLabelをビュー内で使用することもできます。私はテーブルヘッダーを使用して並べ替える(選択しない)。他のものと同様に。 –
それでもできます。ただし、外部キーではなく会社名でソートする場合は、データプロバイダにハックする必要があります(例:$ model-> search()) –
私はCSortで正しいパスを開始しています。あなたはあまり具体的ではありません。私がそれを動作させるために「何か」を変える必要があることを教えてくれてありがとう。明らかに。 –