在Yii 2中从数组中提取数据

时间:2015-04-20 06:08:59

标签: php yii yii2

我试图从数据库中获取数据并在菜单中显示。

echo NavX::widget([
    'options' => ['class' => 'navbar-nav navbar-right'],
    'items' => [
        array_map(function ($model) {
            return [
                'label' => $model['param2'],
                'url' => ["/users/{$model['param3']}"],
            ];
        }, Model::find()->where(['userID' => 32])->asArray()->all()),
    ],
]);

但不幸的是这段代码错了,错误说:

  

数组到字符串转换

还有其他方法可以解决吗?

2 个答案:

答案 0 :(得分:1)

我的猜测,没有测试:

echo NavX::widget([
    'options' => ['class' => 'navbar-nav navbar-right'],
    'items' => [
        array_map(function ($model) {
            return [
                'label' => $model['param2'],
                'url' => "/users/{$model['param3']}", // <--- string, not array!
            ];
        }, Model::find()->where(['userID' => 32])->asArray()->all()),
    ],
]);

答案 1 :(得分:0)

其中一种“Yii”方式是使用内置ArrayHelper

use yii\helpers\ArrayHelper;

...

$models = Model::find()->where(['userID' => 32])->asArray()->all();
$items = ArrayHelper::toArray($models, [
    'app\models\Model' => [    
        'label' => function ($model) {
            // Add label generation code here
        },
        'url' => function ($model) {
            // Add url generation code here
        }
    ],
]);

然后使用菜单将$items传递到您的视图。

官方文档: