Yii2。直接从SearchModel生成ul列表

时间:2016-04-19 12:53:27

标签: sql yii2

我需要以下输出:

<ul>
    <li class="active"><a href="#section1">Value 1</a></li>
    <li><a href="#section2">Value 2</a></li>
    <li><a href="#section3">Value 3</a></li>
    <li><a href="#section4">Value 4</a></li>
    <li><a href="#section5">Value 5</a></li>
    ...
</ul>

其中Value是来自数据库(DB)的数据(例如某些字段的值)。是否可以从已经插入到某个预定义字符串的DB中获取重新编码?

3 个答案:

答案 0 :(得分:1)

我认为你需要这个。 使用ArrayHelper创建一个数组来存储来自特定模型的所有数据。

<?php
use yii\helpers\ArrayHelper;
$dataFromDBTable = ArrayHelper::map(ModelName::find()->all(), 'id', 'name');
?>
<ul>
    <?php foreach ($dataFromDBTable as $id => $name) { ?>
    <li><a href="#section<?=$id?>"><?=$name?></a></li>
    <?php } ?>
</ul>

答案 1 :(得分:0)

最好使用Html来创建列表。例如:

<?=yii\helpers\Html::u($items, $options); ?>

答案 2 :(得分:0)

我使用了ListView和#39;标记&#39; =&GT;假:

<?= 
ListView::widget([
            'dataProvider' => $dataProvider,
            'options' => ['tag' => false],
            'itemOptions' => ['tag' => false],
            'layout' => "\n{items}",
            'itemView' => function ($model, $key, $index, $widget) {
                          return $this->render('_specialization_li',['model' => $model, 'index' => $index]);
                          },
            ]);
?>

在_specialization_li里面我写道:

<li><a href="#section<?= $model->id ?>"><?= $model->name_ ?></a></li>

另外在github上有&#39;标记&#39; =&gt; false的错误修正:

https://github.com/pkirill99/yii2/commit/528b97183591376da80ee168a2a1132ea36f33cf