Ознакомиться с функционалом создания и запуска моделей в Yii2, научиться работать с базой данных через ActiveRecord, создавать связи между таблицами.
⚠️ Внимание: Хостинг не поддерживает PHP и MySQL, поэтому сам фреймворк не может быть запущен. Ниже представлены скриншоты, демонстрирующие успешное выполнение работы на локальном сервере.
yii2_mini и таблицу postPost для работы с таблицей статейPostController и представлениеconfig/db.phpcategory и модель Category
yii2_mini с кодировкой utf8mb4_general_ci
post
CREATE TABLE IF NOT EXISTS `post` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`category_id` int(10) unsigned NOT NULL,
`title` varchar(255) NOT NULL,
`excerpt` varchar(255) NOT NULL,
`text` text NOT NULL,
`keywords` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
`created` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
post с тремя тестовыми статьями
post
category
CREATE TABLE IF NOT EXISTS `category` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`keywords` varchar(255) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `category` (`id`, `name`) VALUES
(1, 'Yii2 Основы'),
(2, 'Базы данных'),
(3, 'MVC архитектура');
category с тремя категориями
post и category
models/Post.php с методом getCategory()
models/Category.php с методом getPosts()
controllers/PostController.php
views/post/index.php с выводом категорий
config/db.php с параметрами подключения
В результате лабораторной работы были созданы:
• База данных yii2_mini с таблицами post и category
• Модели Post и Category с использованием ActiveRecord
• Контроллер PostController с методом actionIndex()
• Представление index.php для вывода списка статей
• Связь между моделями через метод getCategory()
• Вывод категории для каждой статьи (что-то пошло не так и там скрин ошибки, а не страница ;))
| Таблица post | Таблица category |
|---|---|
| id (PK) | id (PK) |
| category_id (FK → category.id) | name |
| title | keywords |
| excerpt | description |
| text | |
| created |
Тип связи: Один ко многим (Category → Post) / Один к одному (Post → Category)