我刚开始学习Yii框架,所以我是一个初学者。我很努力。我想用Yii 2框架从数据库中取数据。这是我的控制器
public function actionView()
{
$this->view->title = 'List Hotels';
$items = ArrayHelper::map(Hotel::find()->all(), 'id', 'name');
return $this->render('index', [
'items' => $items,
]);
}
在我的视图文件中,我使用了如下所示的提取数据;
<?php
/* @var $this yii\web\View */
use yii\helpers\Html;
$this->title = 'Hotel list';
$this->params['breadcrumbs'][] = $this->title;
?>
<?php foreach ($items as $item): ?>
<p> <?= $item-> name ?></p>
<p> <?= $item->address ?></p>
<p> <?= $item->description ?></p>
<?php endforeach; ?>
当我在$items下写var_dumps($items)时,我可以看到数据。但是在视图中它说试图获取非对象的属性'name'。我在这里做错了什么,请指导我。谢谢你的时间。
2条答案
按热度按时间zf9nrax11#
返回一个数组,在你的例子中,第二个参数是一个键,第三个是一个值。所以你需要以数组元素的形式访问它的元素,而不是类属性。比如:
更多详细信息,请访问:https://www.yiiframework.com/doc/api/2.0/yii-helpers-basearrayhelper#map()-detail
但如果需要将数据作为类属性来访问,请更改控制器中的行:
至:
1szpjjfi2#
我不应该添加数组帮助器