我有来自其他表的带有父页面的页面。我想像这样的“服务页面(诊所1)”,“服务页面(诊所2)”这样显示带有父页面标题的结果,因为现在用户只能看到“服务页面”,“服务页面”和“不知道每个人的父母页面。我在数据库中的父页面是hospital_id
我的查询是
$parentPagesArray[0] = Yii::t('app', 'app.main_page');
$parentPages = \backend\models\Page::find()->where('active=1')->orderBy('sort ASC')->all();
$parentPagesArray['----------------'] = ArrayHelper::map($parentPages, 'id', 'title');
和视图:
<div class="col-sm-6 tooltip-info" data-toggle="tooltip" data-placement="top" title="" data-original-title="<?=Yii::t('app','app.Tooltip page id_in')?>">
<?php
?>
<?=
$form->field($model, 'id_in')->widget(Select2::classname(), [
'model' => $model,
'attribute' => 'id_in',
'data' => $parentPagesArray,
'options' => [
'placeholder' => Yii::t('app', 'app.select_an_option'),
],
'pluginOptions' => [
'allowClear' => true
],
])
?>
</div>
答案 0 :(得分:1)
ArrayHelper::map()
允许您提供回调以生成标题:
$parentPagesArray['----------------'] = ArrayHelper::map($parentPages, 'id', static function ($page) {
$title = $page->title;
if (isset($page->parent)) {
$title .= " ({$page->parent->title})";
}
return $title;
});