First Apps - uniqcle/Yii2 GitHub Wiki

First App

В папке frontend/controllers/ создаем файл HelloWorldController.php

//Сначала указываем имя контроллера
namespace frontend\controllers;

//Базовый класс контроллера
use yii\web\Controller;

class HelloWorldController extends Controller
{
    public function actionIndex(){
        echo 'Hello, World!';
    }
}

Страница доступна по адресу http://yii2frontend.com/hello-world/,

а также http://yii2frontend.com/hello-world/index, где hello-world - Controller, а index - Action

Генерация View

в папке frontend/view/ создаем папку hello-world(название Контроллера) в ней файл index.php(название Action'a)

HelloWorldController.php

<?php

//Сначала указываем имя контроллера
namespace frontend\controllers;

//Базовый класс контроллера
use yii\web\Controller;

class HelloWorldController extends Controller
{
    public function actionIndex(){

        //Подключение View
        return $this->render('index');
    }
}

index.php

echo 'Hello, World!';

App with Database

Создаем БД

CREATE TABLE `yii2advanced`.`news` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(45) NULL,
  `content` TEXT NULL,
  `status` INT NULL,
  PRIMARY KEY (`id`));

Создаем в frontend/controllers файл NewsController.php

<?php
namespace frontend\controllers;

use yii\web\Controller;
use frontend\models\News;

class NewsController extends Controller
{
    public function actionIndex(){

        $listNews = News::getNewsList();

        return $this->render('index', [
            'listNews' => $listNews
        ]);
    }
}

Создаем в frontend/models файл News.php

namespace frontend\models;

use Yii;

class News
{
    public static function  getNewsList(){

        $sql = "SELECT * FROM news";
        return Yii::$app->db->createCommand($sql)->queryAll();
}
}

Создаем в frontend/views/news файл index.php

<?php foreach($listNews as $newsItem): ?>
    <h2><?=$newsItem['title']; ?></h2>
    <p><?=$newsItem['content']; ?></p>
<?php endforeach; ?>
⚠️ **GitHub.com Fallback** ⚠️