YII2 Создание простой страницы и вывод данных из БД

В этой короткой заметке я покажу как создать новую страницу в базовом контролере сайта на YII2 и вывести туда записи из вашей БД. Итак предположим что вы уже создали ваш YII2 Basic сайт, подключили его к базе данных. Давайте в основном контролере controllers/SiteController.php добавим новую страницу и выведем на неё данные которые мы вручную закинем в таблицу БД. Итак в файл контроллера controllers/SiteController.php перед последним закрывающим } вставляем следующий код:

    /**
     * Displays blog page.
     */
  public function actionBlog()
    {
        $array = BlogList::getAll();
        return $this->render('blog',['varInView' => $array]);
    }

А так же в вехней части подключим модель которую мы сейчас создадим: use app\models\BlogList;  // Custom Blog Model

Давайте теперь создадим ту самую модель, которая будет выбирать данные из БД. Для этого в папке models создадим файл BlogList.php со следующим содержимым:

<?php

namespace app\models;

class BlogList extends \yii\db\ActiveRecord{

      public static function tableName()
      {
             return 'blog'; // Имя таблицы в БД в которой хранятся записи блога
      }


      public static function getAll()
      {
             $data = self::find()->all();
             return $data;
      }

}

Теперь в папке views/site необходимо создать файл blog.php можно это сделать, посредством дублирования и переименования файла about.php расположенного в этой же папке. Содержание должно быть следующим:

<?php

/* @var $this yii\web\View */

use yii\helpers\Html;

$this->title = 'Blog';
$this->params['breadcrumbs'][] = $this->title;

print_r ($arrayInView);

?>
<div class="site-about">
    <h1><?= Html::encode($this->title) ?></h1>

    <?php foreach ($varInView as $item): ?>
        <h2><?php echo $item->blog_title ?></h2> // Имы ячейки в таблице должно быть соответственно blog_title
    <?php endforeach ?>

</div>

Теперь можно перейти по ссылке site/blog и посмотреть что у на сполучилось!