 
				 
            Создание Доски объявлений с использованием фреймворка YII2.
Автор: Жданов В.В.
Данный курс - практикум по созданию сайта с использованием фреймворка YII2. 
Цель: создание небольшого сайта с нуля до "коробочного" варианта, готового к размещению на хостинге. 
Теории здесь не много, больше практической работы по принципу: "произвел действие - получил результат".
Также по максимуму используем функционал фреймворка YII2.
Программируем - и кайфуем!
| # | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ | 
|---|---|---|---|---|---|
| 1 |  О проекте и про инструменты |  | |||
| На этом уроке мы рассмотрим тематику разработки и настроим инструменты Отчёт отправил: 6203. Николай Миролюбов Выполнено за 20 час. 56 мин. [Показать отчёт] Научился: Ничему. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 2 |  Создание проекта YII2 | 1 тест | |||
| На этом уроке мы создадим проект нового сайта, установим YII2 и запустим новый сайт на нашем локальном домене Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 час. 0 мин. [Показать отчёт] Научился: Установил через композер. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 3 |  Комфортная конфигурация | 2 теста | |||
| На этом уроке мы настроим удобные для человека ссылки и поменяем название сайта при помощи настроек config/web.php Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 час. 23 мин. [Показать отчёт] Научился: Редактировать web.php. Валера, по-моему ты забыл еще одну вещь. Неплохо было бы еще настроить репозиторий: - git и github соответственно. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 4 |  Схема базы данных |  | |||
| На этом уроке мы создадим схему базы данных для нашего проекта Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 1 час. 43 мин. [Показать отчёт] Научился: Проектировать базу данных. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 5 |  Подключение к базе данных пользователя и миграция пользователей | 1 тест | |||
| На этом уроке мы создадим базу данных, подключим ее к нашему проекту и создадим таблицу пользователей при помощи механизма миграций Отчёт отправил: 6203. Николай Миролюбов Выполнено за 19 мин. [Показать отчёт] Научился: Научился создавать и выполнять миграции. Сложности: Трудностей не возникло. Спасибо за урок. | |||||
| 6 |  Аутентификация - захешированный пользователь из БД | 1 тест | |||
| На этом уроке мы подкорректируем модель User  и реализуем аутентификацию на сайте через базу данных Отчёт отправил: 6203. Николай Миролюбов Выполнено за 30 мин. [Показать отчёт] Научился: Создавать класс UserRecord. Сложности: Спасибо за урок! | |||||
| 7 |  Информация о пользователе |  | |||
| На этом уроке создадим таблицу и модель Информация о пользователе Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 1 час. 8 мин. [Показать отчёт] Научился: Создавать таблицу с помощью миграций. Создал проект заново. Все отлично! Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 8 |  MVC - немного теории | 1 тест | |||
| На этом уроке мы рассмотрим теоретические основы работы MVC и создадим новый контроллер в нашем проекте Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 17 час. 24 мин. [Показать отчёт] Научился: Создавать контроллеры. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 9 | MVC - информация о пользователе |  | |||
| На этом уроке мы получим данные о пользователе из базы в представление Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 23 час. 6 мин. [Показать отчёт] Научился: Передавать параметры в представление и выводить их. Сложности: Найти ошибку в методе getUserinfo. | |||||
| 10 | Пользователь - кто зарегистрирован сейчас? | 1 тест | |||
| На этом уроке мы получим информацию о текущем зарегистрированном пользователе, а также сделаем рефакторинг кода Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 22 час. 47 мин. [Показать отчёт] Научился: Использовать сессию. Немного недопонял, почему getCurrentUser мы вызываем статически, а не динамически. Мы же его не объявляли, как static. Почему он вызывается? Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 11 | Новый пользователь - заготовка и меню |  | |||
| На этом уроке мы создадим действие и представление для добавления пользователя, а также добавим пункт меню "Регистрация" Отчёт отправил: 6203. Николай Миролюбов Выполнено за 21 мин. [Показать отчёт] Научился: Добавлять пункт регистрация. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 12 | Новый пользователь - модель для формы | 1 тест | |||
| На этом уроке мы создадим модель параметров формы добавления пользователя Отчёт отправил: 6203. Николай Миролюбов Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: Создавать модель UserForms. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 13 | Новый пользователь - дизайн формы начало |  | |||
| На этом уроке мы зададим поля формы добавления пользователя Отчёт отправил: 6203. Николай Миролюбов Выполнено за 22 час. 15 мин. [Показать отчёт] Научился: Использовать хелпер. Сложности: Найти ошибку. Не указал квадратные скобки при передаче параметров в представление. Спасибо за урок! | |||||
| 14 | Новый пользователь - дизайн формы: поля и колонки | 1 тест | |||
| На этом уроке мы добавим все поля формы, кнопку сохранения, а также разместим поля в две колонки Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 день 4 час. 42 мин. [Показать отчёт] Научился: Работать с бутстрапом. Сложности: Почему-то сначала не работало разбиение на две колонки, потом вдруг заработало, не понятно почему. Не смог добавить email, почему-то ругается. Спасибо за урок! | |||||
| 15 | Новый пользователь - сохранение нового пользователя | 1 тест | |||
| На этом уроке мы напишем алгоритм сохранения записи о пользователе и информации о нем Отчёт отправил: 6203. Николай Миролюбов Выполнено за 6 час. 34 мин. [Показать отчёт] Научился: Научился сохранять данные в базу данных с помощью ActiveRecord. Сложности: Долго я искал ошибки, но все-таки нашел и исправил. Спасибо за Урок! | |||||
| 16 | Красивая аутентификация на сайте |  | |||
| На этом уроке мы поменяем дизайн формы входа на сайт Отчёт отправил: 6203. Николай Миролюбов Выполнено за 12 час. 0 мин. [Показать отчёт] Научился: Менять атрибуты. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 17 | Что доступно Юпитеру? | 1 тест | |||
| На этом занятии мы научимся управлять доступом к пунктам главного меню Отчёт отправил: 6203. Николай Миролюбов Выполнено за 22 мин. [Показать отчёт] Научился: Скрывать пункты меню с помощью атрибута visible. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 18 | Объявления - создание базы и модели | 1 тест | |||
| На этом уроке мы создадим таблицу bulletins при помощи миграций и сгенерируем для данной таблицы класс ActiveRecord Отчёт отправил: 6203. Николай Миролюбов Выполнено за 9 час. 30 мин. [Показать отчёт] Научился: Создавать миграции. Сложности: Трудностей не возникло! Спасибо за урок! | |||||
| 19 | Объявления - контроллер, представление и много записей | 1 тест | |||
| На этом уроке мы создадим контроллер и представление для работы с объявлениями, а также сделаем связь записей о пользователях и объявлениях типа "один-ко-многим" Отчёт отправил: 6203. Николай Миролюбов Выполнено за 1 час. 12 мин. [Показать отчёт] Научился: Создавать контроллер Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 20 | Объявление - функциональный дизайн страницы |  | |||
| На этом уроке мы сделаем дизайн страницы наших объявлений, который поможет нам работать с объявлениями в дальнейшем Отчёт отправил: 6203. Николай Миролюбов Выполнено за 14 час. 48 мин. [Показать отчёт] Научился: Работать с бутстрапом. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 21 | Объявление - ограничение доступа |  | |||
| На этом уроке мы ограничим доступ неавторизированного пользователя к странице управления объявлениями, а также решим некоторые технические вопросы Отчёт отправил: 6203. Николай Миролюбов Выполнено за 22 мин. [Показать отчёт] Научился: Работать с бутстрапом. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 22 | Объявление - поля для пользовательских форм |  | |||
| На этом уроке мы создадим класс BulletinsForm и определим, какие поля будут использоваться при создании объявления Отчёт отправил: 6203. Николай Миролюбов Выполнено за 19 мин. [Показать отчёт] Научился: Создавать модель. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 23 | Объявление - форма добавления объявлений | 1 тест | |||
| На этом уроке мы создадим представление для добавления объявлений и действие контроллера, запускающего это представление Отчёт отправил: 6203. Николай Миролюбов Выполнено за 28 мин. [Показать отчёт] Научился: Создавать форму с помощью бутстрапа. Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 24 | Объявление - сохранение в черновик |  | |||
| На этом уроке мы реализуем механизм сохранения нового объявления в черновик Отчёт отправил: 6203. Николай Миролюбов Выполнено за 52 мин. [Показать отчёт] Научился: Получать данные методом "POST", с использованием сессии (Yii\$app\session). Сложности: Трудностей не возникло. Спасибо за урок! | |||||
| 25 | Объявление - список |  | |||
| На этом уроке мы реализуем вывод сохраненных в базе объявлений в список | |||||
| 26 | Объявление - всё на публику | 1 тест | |||
| На этом уроке мы сделаем наши объявления опубликованными | |||||
| 27 | Объявление - публикация на главной странице | 1 тест | |||
| На этом уроке мы разместим наши опубликованные объявления на главной странице сайта | |||||
| 28 | Объявление - скрыть нельзя удалить |  | |||
| На этом уроке мы реализуем возможность помещать объявления в группу удаленных, восстанавливать их оттуда, а также отключать их просмотр | |||||
| 29 | Объявление - статусный рефакторинг | 1 тест | |||
| НА этом уроке мы сделаем рефакторинг методов работы со статусом объявлений | |||||
| 30 | Объявление - рефакторинг редактирования |  | |||
| На этом уроке мы реализуем редактирование путем небольшого видоизменения функции добавления записи | |||||
| 31 | Объявление: запрос - в функцию & кнопка для изображений |  | |||
| На этом уроке мы сделаем рефакторинг метода index и добавим кнопки для перехода в режим работы с изображениями | |||||
| 32 | Изображения - микс из миграций |  | |||
| На этом уроке мы через механизм миграций создадим таблицу photo и добавим поле для аватары в таблицу bulletins | |||||
| 33 | Изображения - снова MVC |  | |||
| На этом уроке мы создадим модель, контролер и представление для работы с фото | |||||
| 34 | Изображения - работа с моделью |  | |||
| На этом уроке мы передадим модель нашего объявления в представление | |||||
| 35 | Работаем над ошибками - YII2 в помощь |  | |||
| На этом уроке мы разберемся, как работать над ошибками и читать сигналы дебаггера YII2 | |||||
| 36 | Изображения - где живут картинки | 1 тест | |||
| На этом уроке мы создадим папку для изображений, разместим там изображение по умолчанию, а также создадим универсальные параметры пути и изображения по умолчанию | |||||
| 37 | Изображения - модель формы |  | |||
| На этом уроке мы создадим модель PhotoForm для работы с изображениями | |||||
| 38 | Изображение - загрузочное представление |  | |||
| На этом занятии мы создадим форму представления, через которое будет загружаться изображение | |||||
| 39 | Изображение - загрузка файла на сайт | 1 тест | |||
| На этом уроке мы реализуем алгоритм загрузки изображений на сайт | |||||
| 40 | ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР | без видео | |||
| Мы уже многое сделали на нашем видеокурсе, и автору очень важно узнать Ваше мнение о данном курсе и получить обратную связь в форме видео-презентации и ответов на вопросы. Сделай видео-презентацию своего сайта. | |||||
| 41 | Изображение - сохранение пути в базу |  | |||
| На этом уроке мы реализуем сохранение пути к файлу изображений в базу данных | |||||
| 42 | Изображение - управление картинками |  | |||
| На этом уроке мы займемся дизайном - создадим выпадающее меню управления изображением | |||||
| 43 | Изображение - JS - немного теории и пижонства | 1 тест | |||
| На этом уроке мы рассмотрим работу JS на yii2 | |||||
| 44 | Изображение - JS - глобализация |  | |||
| На этом уроке мы перенесем все скрипты JS в отдельный файл, а также реализуем открытие и скрытие элементов ввода информации | |||||
| 45 | Изображение - JS - сохранение информации в базу | 1 тест | |||
| На этом уроке мы научим нашу систему сохранять информацию об изображениях в базу с использованием технологии ajax | |||||
| 46 | Изображение - JS - извлечение методом ajax |  | |||
| На этом уроке мы научим ajax получать информацию об изображениях из базы | |||||
| 47 | Изображение - аватарка - вывод на главной странице |  | |||
| На этом уроке мы реализуем вывод главных изображений каждого объявления (далее - аватарки) на главной странице | |||||
| 48 | Изображение - аватарка - работа над ошибками связей |  | |||
| На данном уроке мы исправим ошибки вывода фотографий, очистим базу и заново загрузим в нашу базу фотографии в одно из объявлений | |||||
| 49 | Изображение - аватарка - как стать главной |  | |||
| На этом уроке мы создадим код, делающий любое фото главным | |||||
| 50 | Изображение - удаление - ни шагу без подтверждения! |  | |||
| На этом уроке мы реализуем всплывающее окно подтверждения действия и протестируем результаты выбора различных вариантов | |||||
| 51 | Изображение - удаление - удаление файла и записи |  | |||
| На этом уроке мы реализуем удаление файлов изображений и записей о них из базы данных | |||||
| 52 | Главная страница - подробности - ссылки и заготовка представлени |  | |||
| На этом уроке мы создадим ссылки для объявлений на главной странице и заготовку представления для подробного вывода информации объявления | |||||
| 53 | Главная страница - подробности - больше подробностей |  | |||
| На этом уроке мы выведем максимум информации на страницу подробностей объявления | |||||
| 54 | Главная страница - подробности - расширяя информацию | 1 тест | |||
| На этом уроке мы внесем в наш код изменения, которые позволят сохранять объявления с большим количеством информации | |||||
| 55 | Главная страница - оформление - дизайн объявления |  | |||
| На этом уроке мы зададим стиль дизайна объявления | |||||
| 56 | Главная страница - оформление - дизайн элементов базовой страницы | 1 тест | |||
| На этом уроке мы выведем информацию о себе в элементе footer и сделаем главное меню стильным и красивым | |||||
| 57 | Главная страница - оформление - ловим цвет пикселя |  | |||
| На этом уроке мы рассмотрим использование инструментов определения цвета пикселя (Пипетка) | |||||
| 58 | Главная страница - оформление - смотрим все изображения |  | |||
| На этом уроке мы реализуем просмотр всех изображений объявления "не хуже, чем на Avito" | |||||
| 59 | Главная страница - оформление - стильный логотип |  | |||
| На этом уроке мы реализуем вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу | |||||
| 60 | Главная страница - оформление - оповещения через баннер |  | |||
| На этом уроке мы создадим баннер для оповещений, новостей | |||||
| 61 | Разделы (темы) - немного теории |  | |||
| На этом уроке мы рассмотрим вопрос тематик объявлений на нашем сайте, а также составим план (структуру) таблицы тем Themes и связующей таблицы ThemesBulletins | |||||
| 62 | Разделы (темы) - миграции с внешними ключами |  | |||
| На этом уроке мы создадим миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями | |||||
| 63 | Обратная связь - мозговой штурм - внештатные ситуации |  | |||
| В данном уроке попрошу Вас выполнить небольшую самостоятельную работу и дать обратную связь. | |||||
| 64 | Разделы (темы) - вывод тем в объявлении |  | |||
| На этом уроке мы реализуем вывод тем на странице объявления | |||||
| 65 | Разделы (темы) - меню тематик |  | |||
| На этом уроке мы реализуем вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме | |||||
| 66 | Разделы (темы) - тематические выборки |  | |||
| На этом уроке мы реализуем выбор объявлений по темам и вывод их на основную страницу | |||||
| 67 | Разделы (темы) - полезные переходы |  | |||
| На этом уроке мы реализуем возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов | |||||
| 68 | Разделы (темы) - администрирование - теория и заготовки |  | |||
| На этом уроке мы создадим контроллер для администрирования разделов (тем) и представление index | |||||
| 69 | Разделы (темы) - администрирование - все темы в таблицу |  | |||
| На этом уроке мы выведем существующие темы в таблицу и зададим им элементы управления | |||||
| 70 | Разделы (темы) - администрирование - подтверждение удаления |  | |||
| На этом уроке мы реализуем алгоритм подтверждения удаления и создадим соответствующее представление | |||||
| 71 | Разделы (темы) - администрирование - удаление разделов и чистка связей |  | |||
| На этом уроке мы окончательно удалим раздел, а перед этим удалим все его связи с объявлениями | |||||
| 72 | Разделы (темы) - администрирование - Обычный ThemesForm |  | |||
| На этом уроке мы создадим модель ThemesForm, заготовку действия Add в контроллере Themes и представление под него | |||||
| 73 | Разделы (темы) - исправление подсчета и отображение текущей темы |  | |||
| Hа этом уроке мы исправим ошибку подсчета, обнаруженную в процессе прохождения курса, а также отобразим текущую тему, по которой выборка объявлений, в баннере | |||||
| 74 | Разделы (темы) - администрирование - "темное" представление |  | |||
| На этом уроке мы создадим поля для редактирования или добавления темы в представлении themes\add | |||||
| 75 | Разделы (темы) - администрирование - волшебный выпадающий список | 1 тест | |||
| На этом уроке мы создадим выпадающий список выбора родительской темы | |||||
| 76 | Разделы (темы) - администрирование - сохранение темы |  | |||
| На этом уроке мы реализуем сохранение добавляемых и редактируемых тем | |||||
| 77 | Разделы (темы) - администрирование - рефакторинг и валидация |  | |||
| На этом уроке мы сделаем рефакторинг нашего представления add и валидацию данных формы ThemesForm | |||||
| 78 | Связи объявлений и тем - заготовка |  | |||
| На этом уроке мы создадим действие в контроллере BulletinsController и представление, которые помогут нам работать со связями объявлений и тем | |||||
| 79 | Связи объявлений и тем - добавление новой темы |  | |||
| На этом уроке мы научим нашу систему добавлять новую тему в объявление (делать связь темы и объявления) | |||||
| 80 | Связи объявлений и тем - темы, которых не было | 1 тест | |||
| На этом уроке мы научим нашу систему выводить в список добавляемых в объявление тем только те, которые не прикреплены к нашему объявлению | |||||
| 81 | Связи объявлений и тем - темы, которых не будет |  | |||
| На этом уроке мы научим нашу систему удалять из объявлений темы, к которым наше объявление привязывать не надо | |||||
| 82 | Глобальный поиск - поле поиска в меню |  | |||
| На этом уроке мы добавим поле поиска в навигационное меню сайта, а также решим вопрос с активными пунктами меню. | |||||
| 83 | Глобальный поиск - ищем глобально |  | |||
| На этом уроке мы создадим алгоритм поиска по вводимому в поле search контенту | |||||
| 84 | Расширенный поиск - группировка пунктов главного меню |  | |||
| На этом уроке мы сгруппируем пункты главного меню в подразделы, и сделаем в нем ссылку на страницу расширенного поиска | |||||
| 85 | Расширенный поиск - заготовки и план |  | |||
| На этом уроке мы набросаем план будущей страницы расширенного поиска, а также создадим действие контроллера и заготовку представления расширенного поиска | |||||
| 86 | Расширенный поиск - стили и форма |  | |||
| На этом уроке мы внесем исправления в стили субменю и сделаем модель формы расширенного поиска | |||||
| 87 | Расширенный поиск - дизайн текстовых полей и кнопки |  | |||
| На этом уроке мы прокачаем навыки дизайна текстовых полей, создания активной формы в представлении, а также создания кнопки через хелперы yii2 | |||||
| 88 | Расширенный поиск - цена - выбор варианта |  | |||
| На этом уроке мы создадим систему управления выбором варианта поиска по цене | |||||
| 89 | Расширенный поиск - цена - невидимые поля |  | |||
| На этом уроке мы создадим невидимые блоки с полями поиска цены, которые становятся видимыми при нажатии определенного пункта навигатора | |||||
| 90 | Расширенный поиск - дата публикации - виджет извне |  | |||
| На этом уроке мы установим в наш проект компонент jui от стороннего разработчика и создадим календарики для выбора дат | |||||
| 91 | Расширенный поиск - результаты выборки - частичное представление |  | |||
| На этом уроке мы рассмотрим возможность использования частичного представления в yii2-проекте и выведем в частичное представление карточку объявления | |||||
| 92 | Расширенный поиск - генератор поиска - возвращение к SQL-запросу |  | |||
| На этом уроке мы создадим генератор отчета, используя работу ActiveRecord фреймворка yii2 c sql-запросами, и включим в него поиск по текстовым полям формы расширенного поиска | |||||
| 93 | Расширенный поиск - генератор поиска - ограничивающие даты |  | |||
| На этом уроке мы добавим в генератор отчета расширенного поиска выборку по датам публикации | |||||
| 94 | Расширенный поиск - генератор поиска - три вида цены и один POST |  | |||
| На этом уроке мы реализуем различные варианты выборки объявлений по цене и добавим их в наш генератор расширенного поиска | |||||
| 95 | Обратная связь - свой сайт объявлений | без видео | |||
| И снова обратная связь.Подумаем самостоятельно и ответим на вопросы: | |||||
| 96 | Расширенный поиск - генератор поиска - показать, что нужно |  | |||
| На этом уроке мы реализуем отображение той вкладки поиска по ценам, по которой производился поиск | |||||
| 97 | Работа с документацией Yii2 |  | |||
| На этом уроке переходим на один из официальных сайтов по Yii2 и, пользуясь помощью документации, реализовываем одну из своих идей | |||||
| 98 | Пользователи и роли - планирование ролевой модели |  | |||
| На этом уроке мы составим ролевую модель пользователей нашего сайта | |||||
| 99 | Пользователи и роли - фильтры контроля доступа ACF - теория и эксперименты |  | |||
| На этом уроке мы рассмотрим принципы работы фильтров контроля доступа ACF | |||||
| 100 | Пользователи и роли - фильтры контроля доступа ACF - фильтруем всё |  | |||
| На этом уроке мы сами создадим метод behaviors() в BulletinsController и зададим нужные фильтры для действий контроллера | |||||
| 101 | Пользователи и роли - роли через RBAC - теория, установка и миграции |  | |||
| На этом уроке мы установим расширение RBAC, настроим подключение к RBAC и создадим базы для авторизации при помощи механизма миграции | |||||
| 102 | Пользователи и роли - роли через RBAC - тесты и практика |  | |||
| На этом уроке мы создадим тестовые роли и разрешения, а также проверим работу контроллера согласно разрешений | |||||
| 103 | Пользователи и роли - роли через RBAC - вносим действия в план |  | |||
| На этом уроке мы добавим действия к ролям в нашей актуальной ролевой модели | |||||
| 104 | Пользователи и роли - роли через RBAC - реализация плана |  | |||
| На этом уроке мы создадим актуальные роли и действия для пользователей нашего сайта | |||||
| 105 | Пользователи и роли - ACF+RBAC - ограничим доступ к темам |  | |||
| На этом уроке мы реализуем ролевую модель для контроллера тем | |||||
| 106 | Пользователи и роли - управление ролями и привилегиями - контроллер и таблица ролей |  | |||
| на этом уроке мы создадим контроллер и представление для управления ролями | |||||
| 107 | Пользователи и роли - управление ролями и привилегиями - форма добавления роли |  | |||
| На этом уроке мы создадим действие добавления роли и форму добавления роли | |||||
| 108 | Пользователи и роли - управление ролями и привилегиями - сохранение и удаление роли |  | |||
| На этом уроке мы реализуем сохранение роли, а также напишем алгоритм удаления роли | |||||
| Итого: 108 видеоуроков | 23 час. 33 мин. 25 тестов | 3 чел. | |||
| Финалисты: Жан, Николай Денисов, Tom . | |||||