yii2视图写php标签,php – Yii2,如何使用另一个模型在视图文件中显示

我很抱歉我的英语.所以,我有3个表,有很多关系.

并且此代码在视图文件中显示属性:

= 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

],

]) ?>

所以我需要在“field_id”中显示来自SUMMARY_FIELD表的相应“scientist_id”.我怎么能这样做?

K7EIN.png

科学家模型中与表格的关系:

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']);

}

最佳答案 在Model中创建函数:

function getFieldId($model)

{

$string = '';

foreach ($model->summaryFields as $cat) {

$string .= $cat->field_id . " ";

}

return $string;

}

并在视图中访问使用$model-> functionName():

= DetailView::widget([

'model' => $model,

'attributes' => [

[

'attribute'=>'field_id',

'value' => $model->getFieldId($data),

],

],

]); ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值