gpt4 book ai didi

php - Yii2,如何使用另一个模型在 View 文件中显示

转载 作者:可可西里 更新时间:2023-10-31 23:28:57 31 4
gpt4 key购买 nike

我为我的英语感到抱歉。所以,我有 3 个具有多对多关系的表。

以及在 View 文件中显示属性的代码:

    <?= 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”。我该怎么做?

scientst table and other

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

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

最佳答案

在模型中创建函数:

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

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

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

关于php - Yii2,如何使用另一个模型在 View 文件中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361263/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com