我如何在yii ArrayHelper中联接两个表以ID映射

问题描述 投票:0回答:1

我在yii2项目中有一个存档的show save place_id,例如

<?= $form->field($model, 'place_id')->widget(Select2::classname(), [
    'data' => ArrayHelper::map(Places::find()->all,'id','place_english'),
    'options' => ['placeholder' => 'Select Your place'],
])->label(false); ?> 

它以下拉列表的形式显示地点列表,并与id对应。在此,我也想将城市名称连接起来]

place_english,city_english

我在PLaces表中有city_id并与外键连接。我该怎么办。我想要类似的东西

<?= $form->field($model, 'place_id')->widget(Select2::classname(), [
    'data' => ArrayHelper::map(Places::find()->all,'id','place_english,city_english'),
    'options' => ['placeholder' => 'Select Your place'],
])->label(false); ?> 
php join yii2
1个回答
0
投票

您可以在$ model中创建一个方法,类似这样。

public function getPlaceWithCity() {
   return $this->place_english . ', ' . $this->cityRelation->city_english;
}

您需要在活动记录模型中用您的城市关系名称替换cityRelation

...然后您的ArrayHelper映射如下所示。

ArrayHelper::map(Places::find()->all,'id','placeWithCity'),
© www.soinside.com 2019 - 2024. All rights reserved.