Php 正在尝试获取非对象yii的属性
我开始学习Yii框架,所以我是一个初学者。我在挣扎。我想使用yii2框架从数据库中获取数据。这是我的控制器Php 正在尝试获取非对象yii的属性,php,yii,yii2,Php,Yii,Yii2,我开始学习Yii框架,所以我是一个初学者。我在挣扎。我想使用yii2框架从数据库中获取数据。这是我的控制器 public function actionView() { $this->view->title = 'List Hotels'; $items = ArrayHelper::map(Hotel::find()->all(), 'id', 'name'); return $this->render('index', [
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”。我做错了什么请引导我。谢谢你抽出时间
$items = Hotel::find()->all();
我不应该添加数组助手
ArrayHelper::map()
返回一个数组,在本例中,传递的第二个参数是键,第三个参数是值。因此,您需要将其元素作为数组元素而不是类属性来访问。比如:
<?php foreach ($items as $key => $value): ?>
<p> <?= $key ?></p>
<p> <?= $value ?></p>
<?php endforeach; ?>
致:
您通过
$items
(带-s
),但使用$item
(不带-s
),我看不到$items
的任何循环,因此是的,$item==null
对不起,我写错了代码。我编辑了它。你现在能查一下吗?非常感谢。我解决了这个问题
$items = ArrayHelper::map(Hotel::find()->all(), 'id', 'name');
$items = Hotel::find()->all();