Yii2 ArrayHelper显示父类别

时间:2019-04-02 06:53:50

标签: arrays yii2

我有来自其他表的带有父页面的页面。我想像这样的“服务页面(诊所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>

1 个答案:

答案 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;
});