私はyiiフレームワークが初めてです。私は 2 つのモデル (Tables
多数あります) を持っており、モデルからのPeriodeDatas
データをテーブルのインデックス ビューに表示したいのですが、これを機能させることができません。PeriodeDatas
CGridView
表の列
The followings are the available columns in table 'nkr_tables':
@property integer $id
@property string $title
@property string $periode
テーブルモデル関係
'periodeData' => array(self::HAS_MANY, 'PeriodeDatas', 'table_id')
PeriodeDatas列
The followings are the available columns in table 'nkr_periode_datas':
@property integer $id
@property integer $table_id
@property string $year
PeriodeDatasモデル関係
'table' => array(self::BELONGS_TO, 'Tables', 'table_id')
テーブルコントローラー
public function actionIndex()
{
$model = new Tables('search');
$model->unsetAttributes();
if (isset($_GET['Tables']))
$model->attributes = $_GET['Tables'];
$this->render('index', array('model' => $model));
}
テーブル ビュー
$this->widget('zii.widgets.grid.CGridView',
array(
'id'=>'tables-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns' => array(
array(
'name' => 'title',
'header' => 'Data Title'
),
'periode',
array(
'name' => 'periodeData.year',
'header' => 'Tahun'
)
),
'selectionChanged'=>'function(id) { location.href = "'.$this->createUrl('tables/view').'/"+$.fn.yiiGridView.getSelection(id);}'
)
);
結果: http: //prntscr.com/18jpp1
テーブルビューでyear
モデルから表示するには?PeriodeDatas
CGridView
*下手な英語でごめんなさい
更新:
追加しようとしまし'value' => '$data->periodeData->year'
たが、エラーが発生しましたTrying to get property of non-object
更新:
試し'value' => '$data->periodeData[0]->year'
てみたところ、年が正しく表示されましたが、テーブルにレコードが1つしかない場合。テーブルに複数のレコードがある場合、エラーが発生しますUndefined offset: 0
それから私は試し'value' => '$data->periodeData[$data->id]->year'
てみましたが、エラーが発生しましたUndefined index: 1