Почему не работает foreach в yii2?

Через вардамп всё выводится, так $news1[0]["title"] тоже выводится а через foreach нет.
<?php
echo "<pre>";
echo var_dump($news1);
echo "</pre>";
//?>
<?//=$news1[0]["title"]?>
<?//=$news1[1]["title"]?>
<?//=$news1[2]["title"]?>
<?foreach ($news1 as $val){?>
  <?=$val?>
<?}?>

controller
public function actionNews1()
  {
    $news1 = News1::find()->all();
    return $this->render('news1',[
      'news1' => $news1
    ]);
  }

model
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
class News1 extends ActiveRecord{
}

var_dump
array(3) {
  [0]=>
  object(app\models\News1)#67 (8) {
    ["_attributes":"yii\db\BaseActiveRecord":private]=>
    array(3) {
      ["id"]=>
      int(1)
      ["title"]=>
      string(18) "Страница 1"
      ["content"]=>
      string(23) " содержимое 1"
    }
    ["_oldAttributes":"yii\db\BaseActiveRecord":private]=>
    array(3) {
      ["id"]=>
      int(1)
      ["title"]=>
      string(18) "Страница 1"
      ["content"]=>
      string(23) " содержимое 1"
    }
    ["_related":"yii\db\BaseActiveRecord":private]=>
    array(0) {
    }
    ["_errors":"yii\base\Model":private]=>
    NULL
    ["_validators":"yii\base\Model":private]=>
    NULL
    ["_scenario":"yii\base\Model":private]=>
    string(7) "default"
    ["_events":"yii\base\Component":private]=>
    array(0) {
    }
    ["_behaviors":"yii\base\Component":private]=>
    array(0) {
    }
    ...
 }
}


Ошибок тоже никаких не выдаёт.

Может проблема в SQL или в том что нет доступа public?
  • Вопрос задан
  • 1747 просмотров
Решения вопроса 2
piromanlynx
@piromanlynx
Системный администратор в Perfect Solutions
<?php foreach ($news1 as $val){?>
  <?= var_dump($val); ?>
<? } ?>

Что покажет var_dump($val)? Объект. Если хотите вывести title, то это делается вот так:
<?php foreach ($news1 as $val){?>
  <?= $val->title; ?>
<? } ?>
Ответ написан
qonand
@qonand
Software Engineer
тут Вы берете первую модель из массива и выводите ее свойство title
<?=$news1[0]["title"]?>

а вот тут что Вы хотите вывести? модель целиком? сомневаюсь ... где указание свойства которое Вы хотите вывести?
<?foreach ($news1 as $val){?>
  <?=$val?>
<?}?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы