2016-02-12 22 views
4

我很抱歉我的英語。所以,我有3個關係很多的表格。Yii2,如何在查看文件中使用另一種模式顯示

而這種代碼視圖文件,該文件顯示屬性:

<?= DetailView::widget([ 
    'model' => $model, 
    'attributes' => [ 
     'scientist_id', 
     'scientist_name', 
     'scientist_surname', 
     'scientist_patronymic', 
     'scientist_birthdate', 
     'scientist_email:email', 
     'scientist_phone', 
     'scientist_photo', 
     'scientist_status', 
     'scientist_job:ntext', 
     'scientist_additional_information:ntext', 
     'field_id', //display field but no data 
    ], 
]) ?> 

所以我需要顯示對應「scientist_id」從SUMMARY_FIELD表「FIELD_ID的」。我該怎麼做?

public function getSummaryFields() 
{ 
    return $this->hasMany(SummaryField::className(), ['scientist_id' => 'scientist_id']); 
} 
public function getFields() 
{ 
    return $this->hasMany(Field::className(), ['field_id' => 'field_id'])->viaTable('summary_field', ['scientist_id' => 'scientist_id']); 
} 

關係中的SummaryField模型:

public function getField() 
{ 
    return $this->hasOne(Field::className(), ['field_id' => 'field_id']); 
} 

/** 
* @return \yii\db\ActiveQuery 
*/ 
public function getScientist() 
{ 
    return $this->hasOne(Scientist::className(), ['scientist_id' => 'scientist_id']); 
} 
+0

顯示生成模式的關係。 –

+0

顯示您的相關模型..我們可以檢查您已經有正確的關係。 – scaisEdge

+0

@InsaneSkull更新..你這是什麼意思? –

回答

2

在模型中創建功能:

function getFieldId($model) 
{ 
    $string = ''; 
    foreach ($model->summaryFields as $cat) { 
     $string .= $cat->field_id . " "; 
    } 
return $string; 
} 

scientst table and other

與科學家模型表關係次並訪問視圖使用$model->functionName():如果使用GII創建CRUD否則創建模型關係

<?= DetailView::widget([ 
    'model' => $model, 
    'attributes' => [ 
    [ 
    'attribute'=>'field_id', 
    'value' => $model->getFieldId($data), 
    ], 
    ], 
]); ?> 
相關問題