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 и посмотреть что у на сполучилось!