Блог старого компьютера

Блог старого компьютера


Главная Yii 2 Создание небольшого блога на yii 2

Создание небольшого блога на yii 2

24.11.2014 17:20 Администратор Yii 2
Печать PDF

В прошлой статье мы застронули тему установки yii 2 на openserver. Сегодня мы попробуем создать небольшой блог на подготовленной платформе. В yii 2 есть встроенный CRUD генератор с помощью которого любой человек практически не имеющий подготовки сможет создать администрирование таблицы в базе данных mysql. CRUD  - это скоращение от Create, read, update, delete вообщем полноценное управление информацией в таблице базы.

Перед тем как что то создавать необходимо отпределится с тем какую информацию мы хотим видеть в своем мини блоге, а для этого создадим базу данных с помощью phpmyadmin, а в ней создадим таблицу. Как пользоваться php my admin пояснять не буду, думаю разберетесь. В openserver phpmyadmin находится в разделе Дополнительно ->phpmyadmin (для того чтоб в него попасть достаточно просто ввести пользователя с именем root). 

Создаем базу с названием yii. После этого создадим 3 поля с помощью следующего SQL запроса.

CREATE TABLE `yii_blog` (
`id` int(2) NOT NULL auto_increment,
`title` varchar(1000) default NULL,
`txt` mediumtext,
PRIMARY KEY (`id`)
);

 Для ознакомления с crud генератором этих полей нам будет достаточно. Для того чтоб зайти в gii генератор открываем ссылку yii/index.php?r=gii

Для того чтоб хоть что то создать, необходимо настроить подключение yii к только что созданной базе данных. Для этого открываем файл config/db.php и в него вносим наши данные для подключения к mysql базе.

Мои настройки выглядят так:

return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];

Я использовал рутовский доступ, и внес только название своей db.

Далее в gii нажимаем на кнопку start рядом с Model Generator.

 model

Привожу скрин того что я вводил. Обратите внимание я отметил Use Table Prefix так как таблица у меня с префиксом. Далее нажимаем синюю кнопку. Если все в порядке то после этого жмем Зеленую. Далее следует сообщение об успешном выполнении "The code has been generated successfully." Модель создана, выходим в GII и нажимаем CRUD Generator. С помощью данной страницы мы сформируем код который будет администрировать данные модели.

Далее вводим следующие данные, смотрите скрин.

crud

В первом моле указываем путь до созданной модели. Во втором пишем путь до только контроллера который будет контролировать действия круда.

Далее по аналогии жмем снчала синюю, потом зеленую. Круд создан.

Для того чтоб посмотреть что у нас получилось необходимо пройти по ссылке yii/index.php?r=blog. По данной ссылке должен открыться наш мини блог. Создайте в нем несколько записей, обновите их, измените, удалите.

Собственно у меня все работает, я создал пару записей, как это выглядит показываю на скрине.

my-crud

Для того чтоб постоянно не вводить адрес на наше чудо создадим ссылку в главном меню. Главное меню находится в views/layouts/main.php

Далее в вывод виджета меню добавляем запись

echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'Blog', 'url' => ['/blog']],
['label' => 'About', 'url' => ['/site/about']],
['label' => 'Contact', 'url' => ['/site/contact']],
Yii::$app->user->isGuest ?
['label' => 'Login', 'url' => ['/site/login']] :
['label' => 'Logout (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']],
],
]);
NavBar::end();

 Я добавил ссылку после главной. Думаю вы заметили что ссылки сейчас в адресной строке совершенно негодные. Давайте включим SEF или ЧПУ, называйте как угодно.

 Для этого открываем файл config/web.php

И добавляем следующие строки после строки 'components' => [:

'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],

 После этого чтоб все заработало нужно создать файл .htaccess в папке web со следующими строками:

RewriteEngine on
# не позволять httpd отдавать файлы, начинающиеся с точки (.htaccess, .svn, .git и прочие)
RedirectMatch 403 /\..*$
# если директория или файл существуют, использовать их напрямую
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# иначе отправлять запрос на файл index.php
RewriteRule . index.php

 И так сегодня с помощью круда мы создали следующие файлы папки и файлы:

  1. models/blog.php
  2. controllers/BlogController.php
  3. views/blog и все ее содержимое.

Советую изучить эти файлы и папки и ознакомится с работой MVC структуры yii2. В следующий раз попробую рассказать о том как убрать администрирование нашего блога под пароль.

Добавить комментарий


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?