Создание Доски объявлений с использованием фреймворка YII2.
Автор: Жданов В.В.
Данный курс - практикум по созданию сайта с использованием фреймворка YII2.
Цель: создание небольшого сайта с нуля до "коробочного" варианта, готового к размещению на хостинге.
Теории здесь не много, больше практической работы по принципу: "произвел действие - получил результат".
Также по максимуму используем функционал фреймворка YII2.
Программируем - и кайфуем!
# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
На этом уроке мы рассмотрим тематику разработки и настроим инструменты Отчёт отправил: 2146. Иван Выполнено за 13 мин. [Показать отчёт] Научился: Узнал о Apach NetBeans. Сложности: Все установил. Спасибо |
|||||
2 |
![]() |
1 тест |
|||
На этом уроке мы создадим проект нового сайта, установим YII2 и запустим новый сайт на нашем локальном домене Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: Скачал Yii. И даже его запустил. Сложности: С первого раза, конечно , не получилось, так как пропустил мимо ушей, что надо выбрать самую новую версию php. НА старой версии не запустилось. Отчет только сейчас отправляю, хотя сделал уже давно. Спасибо за уроки! |
|||||
3 |
![]() |
2 теста |
|||
На этом уроке мы настроим удобные для человека ссылки и поменяем название сайта при помощи настроек config/web.php Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт] Научился: Чуть-чуть исправили файлы конфигурации Сложности: Все получилось. |
|||||
4 |
![]() |
|
|||
На этом уроке мы создадим схему базы данных для нашего проекта
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт] Научился: Познакомился с концепцией организации доски объявлений Сложности: Все доступно. Можно еще добавить позицию : срок действия объявления. Хотя, в учебном проекте, лучше не раздувать количество полей. Спасибо. |
|||||
5 |
![]() |
1 тест |
|||
На этом уроке мы создадим базу данных, подключим ее к нашему проекту и создадим таблицу пользователей при помощи механизма миграций Отчёт отправил: 2146. Иван Выполнено за 42 мин. [Показать отчёт] Научился: Все было новым. Научился создавать миграции. Сложности: Как обычно у себя на компьютере все чуть - чуть не так. Проект оказался в другой папке, все файлы Yii еще в одной. Но спасибо Валерию, что в видео все показал: и в какой папке у него проект, и откуда будет запускаться все. Так что удалось разобраться! |
|||||
6 |
![]() |
1 тест |
|||
На этом уроке мы подкорректируем модель User и реализуем аутентификацию на сайте через базу данных
Отчёт отправил: 2146. Иван Выполнено за 49 мин. [Показать отчёт] Научился: Делать аутентификацию Сложности: 10 звезд Почему-то было страшно менять код, но Все получилось. Только надо помнить , что все-таки надо сохраняться в netbeans. Понял, что то, что мы сделали, это вершина айсберга, и чтобы во всех тонкостях разобраться, надо потратить не один год. |
|||||
7 |
![]() |
|
|||
На этом уроке создадим таблицу и модель Информация о пользователе
Отчёт отправил: 2146. Иван Выполнено за 51 мин. [Показать отчёт] Научился: Еще раз использовали миграцию. Сложности: Получилось. Сам сделать вывод не решился. Посмотрю в следующем уроке. |
|||||
8 |
![]() |
1 тест |
|||
На этом уроке мы рассмотрим теоретические основы работы MVC и создадим новый контроллер в нашем проекте
Отчёт отправил: 2146. Иван Выполнено за 14 мин. [Показать отчёт] Научился: Пока просто повторил. Сложности: Чтобы все понять надо мануалы долго почитать. Пока просто все повторил. |
|||||
9 | MVC - информация о пользователе |
|
|||
На этом уроке мы получим данные о пользователе из базы в представление
Отчёт отправил: 2146. Иван Выполнено за 1 день 17 час. 53 мин. [Показать отчёт] Научился: Искать, где ошибка Сложности: Что-то урок дался очень сложно. Переделывал все раза 3. И миграцию, и таблицу. Умудрился стереть файл userRecord. А так как его не было, то возникала ошибка и не удавалось войти на страницу, где этот файл можно сгенерировать. И большое, спасибо, что Валера показал файлик в видео, хоть и быстро, но с паузой сумел все ручками скопировать. Потом оказалось, что один метод не в тот файл положил. Так что удалось пройти этот урок раза с третьего. |
|||||
10 | Пользователь - кто зарегистрирован сейчас? |
1 тест |
|||
На этом уроке мы получим информацию о текущем зарегистрированном пользователе, а также сделаем рефакторинг кода Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: --- Сложности: Все рассмотреть. Спасибо. |
|||||
11 | Новый пользователь - заготовка и меню |
|
|||
На этом уроке мы создадим действие и представление для добавления пользователя, а также добавим пункт меню "Регистрация" Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт] Научился: Менять и добавлять пункты меню Сложности: Шаг влево, ваг вправо - всюду пропасть.... Спасибо за урок. |
|||||
12 | Новый пользователь - модель для формы |
1 тест |
|||
На этом уроке мы создадим модель параметров формы добавления пользователя
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт] Научился: Создали модель UserForm Сложности: Сделал еще один урок, чему очень рад! |
|||||
13 | Новый пользователь - дизайн формы начало |
|
|||
На этом уроке мы зададим поля формы добавления пользователя
Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт] Научился: добавлять поддержку bootstrap. Добавлять поля. Сложности: В каком-то слове сделал ошибку, и все сломалось. Легко ломается, очень легко. |
|||||
14 | Новый пользователь - дизайн формы: поля и колонки |
1 тест |
|||
На этом уроке мы добавим все поля формы, кнопку сохранения, а также разместим поля в две колонки Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт] Научился: Добавлять поля. Делать две колонки, используя bootstrap. Сложности: Этот урок дался чуть легче, чем предыдущие. |
|||||
15 | Новый пользователь - сохранение нового пользователя |
1 тест |
|||
На этом уроке мы напишем алгоритм сохранения записи о пользователе и информации о нем
Отчёт отправил: 2146. Иван Выполнено за 37 мин. [Показать отчёт] Научился: Добавлять записи в базу данных. Волшебство произошло! Сложности: Раза с десятого отловил все ошибки. Повезло! |
|||||
16 | Красивая аутентификация на сайте |
|
|||
На этом уроке мы поменяем дизайн формы входа на сайт
Отчёт отправил: 2146. Иван Выполнено за 1 день 2 мин. [Показать отчёт] Научился: Отредактировали поля. Повторили как использовать функцию public function attributeLabels():array { return['username' => 'Логин', 'password' => 'Пароль', 'rememberMe' =>' Запомнить' ]; Сложности: Все получилось |
|||||
17 | Что доступно Юпитеру? |
1 тест |
|||
На этом занятии мы научимся управлять доступом к пунктам главного меню
Отчёт отправил: 2146. Иван Выполнено за 22 час. 17 мин. [Показать отчёт] Научился: Настраивать отображение интерфейса в зависимости от разрешений пользователя. Сложности: Получилось! Спасибо |
|||||
18 | Объявления - создание базы и модели |
1 тест |
|||
На этом уроке мы создадим таблицу bulletins при помощи миграций и сгенерируем для данной таблицы класс ActiveRecord
Отчёт отправил: 2146. Иван Выполнено за 36 мин. [Показать отчёт] Научился: Повторил создание миграций + создание модели Сложности: Вовремя сохранить файл, чтобы миграция создалась правильно. :) |
|||||
19 | Объявления - контроллер, представление и много записей |
1 тест |
|||
На этом уроке мы создадим контроллер и представление для работы с объявлениями, а также сделаем связь записей о пользователях и объявлениях типа "один-ко-многим" Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт] Научился: 1. сделать связь пользователей и объявлений в UserRecord 2. создать контроллер объявлений BulletinsController 3. создать действие вызова представления /bulletins/index 4. создать представление /bulletins/index и протестировать запуск Сложности: Поискал, где должны быть скобки. Все было сложным. Что-то я упустил в начале. Все равно не очень понятно как эта магия работает. Куча файлов, но при этом все работает с легкой руки Валерия! |
|||||
20 | Объявление - функциональный дизайн страницы |
|
|||
На этом уроке мы сделаем дизайн страницы наших объявлений, который поможет нам работать с объявлениями в дальнейшем
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт] Научился: Увидел , как используют классы bootstrap. Создавать вкладки. Сложности: Интересно смотреть, как делают сайт профессионалы. Очень интересно! Спасибо. |
|||||
21 | Объявление - ограничение доступа |
|
|||
На этом уроке мы ограничим доступ неавторизированного пользователя к странице управления объявлениями, а также решим некоторые технические вопросы
Отчёт отправил: 2146. Иван Выполнено за 20 мин. [Показать отчёт] Научился: Использовать классы bootstrap a. Сложности: Очень красиво получается! Спасибо! |
|||||
22 | Объявление - поля для пользовательских форм |
|
|||
На этом уроке мы создадим класс BulletinsForm и определим, какие поля будут использоваться при создании объявления Отчёт отправил: 2146. Иван Выполнено за 19 мин. [Показать отчёт] Научился: Создали форму Сложности: Все перепечатал. |
|||||
23 | Объявление - форма добавления объявлений |
1 тест |
|||
На этом уроке мы создадим представление для добавления объявлений и действие контроллера, запускающего это представление Отчёт отправил: 2146. Иван Выполнено за 1 час. 14 мин. [Показать отчёт] Научился: Учился искать ошибки. Пришлось возвращаться даже к прошлому уроку, т.к. в юзингах ошибок тоже наделал. Сложности: Ох, пришлось попрыгать по файлам в поиске ошибок. Заметил, что функция имеет название actionAddbulletin(). А адресной строке набираем addbulletin. + была ошибка - название BulletinsForm меня было с маленькой буквы. Удивительно, но удалось эти ошибки найти и исправить |
|||||
24 | Объявление - сохранение в черновик |
|
|||
На этом уроке мы реализуем механизм сохранения нового объявления в черновик
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: Сохранять данные в базу данных Сложности: Спасибо. Без ошибок набрать все-таки не удалось. |
|||||
25 | Объявление - список |
|
|||
На этом уроке мы реализуем вывод сохраненных в базе объявлений в список
Отчёт отправил: 2146. Иван Выполнено за 1 час. 35 мин. [Показать отчёт] Научился: Выводить из базы данных на вебстраницу с помощью Yii Сложности: Опять закопался в поиске ошибки. Главное смотреть в нужную сторону! |
|||||
26 | Объявление - всё на публику |
1 тест |
|||
На этом уроке мы сделаем наши объявления опубликованными
Отчёт отправил: 2146. Иван Выполнено за 25 мин. [Показать отчёт] Научился: Все повторил по видео Сложности: Получилось! Главное быть внимательным. |
|||||
27 | Объявление - публикация на главной странице |
1 тест |
|||
На этом уроке мы разместим наши опубликованные объявления на главной странице сайта
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт] Научился: Создали блоки на главной странице. Очередное знакомство с параметрами bootstrap Сложности: Спасибо. Получилось! |
|||||
28 | Объявление - скрыть нельзя удалить |
|
|||
На этом уроке мы реализуем возможность помещать объявления в группу удаленных, восстанавливать их оттуда, а также отключать их просмотр Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт] Научился: Делать функционал кнопок на Yii !! Сложности: Попрыгали по файлам, и все в итоге получилось, Приятно, что в конце каждого урока есть видимый результат! Спасибо |
|||||
29 | Объявление - статусный рефакторинг |
1 тест |
|||
НА этом уроке мы сделаем рефакторинг методов работы со статусом объявлений
Отчёт отправил: 2146. Иван Выполнено за 14 мин. [Показать отчёт] Научился: сделали рефакторинг Сложности: Спасибо. Получилось без ошибок. Пока сам менять ничего не буду... У меня может и сломаться :) |
|||||
30 | Объявление - рефакторинг редактирования |
|
|||
На этом уроке мы реализуем редактирование путем небольшого видоизменения функции добавления записи
Отчёт отправил: 2146. Иван Выполнено за 52 мин. [Показать отчёт] Научился: передавать информацию в разные формы Сложности: Сначала что-то где-то не сохранилось и у меня начали добавляться в базу исправленные объявления отдельными позициями. А потом что-то я сохранил, и стало все правильно сохраняться. К сожалению не успел понять, где же я недосохранил в первый раз. |
|||||
31 | Объявление: запрос - в функцию & кнопка для изображений |
|
|||
На этом уроке мы сделаем рефакторинг метода index и добавим кнопки для перехода в режим работы с изображениями
Отчёт отправил: 2146. Иван Выполнено за 21 мин. [Показать отчёт] Научился: добавили кнопочку и сделали рефакторинг Сложности: Все понравилось и все получилось. Спасибо. Пока запас 2-е фотки. |
|||||
32 | Изображения - микс из миграций |
|
|||
На этом уроке мы через механизм миграций создадим таблицу photo и добавим поле для аватары в таблицу bulletins
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт] Научился: Научился добавлять столбец в существующую уже таблицу с помощью yii migrate/create !!! Сложности: Спасибо, Очень было познавательно. |
|||||
33 | Изображения - снова MVC |
|
|||
На этом уроке мы создадим модель, контролер и представление для работы с фото
Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт] Научился: Реализовали еще один контроллер, Создали новый view для фоток. Сложности: Не с первого запуска запустилось, но ошибки все найдены! Спасибо |
|||||
34 | Изображения - работа с моделью |
|
|||
На этом уроке мы передадим модель нашего объявления в представление
Отчёт отправил: 2146. Иван Выполнено за 52 мин. [Показать отчёт] Научился: Добавляем функционал Сложности: Ошибочки свои пришлось поискать! |
|||||
35 | Работаем над ошибками - YII2 в помощь |
|
|||
На этом уроке мы разберемся, как работать над ошибками и читать сигналы дебаггера YII2
Отчёт отправил: 2146. Иван Выполнено за 3 час. 37 мин. [Показать отчёт] Научился: Увидел, где проверять , что дебагер включен Сложности: Воспроизвел одну из моих ошибок, которая была у меня на прошлом уроке. Не хватало квадратных скобок после $this->params['breadcrumbs'][] Да сколько было уже исправлено разных ошибок. ... |
|||||
36 | Изображения - где живут картинки |
1 тест |
|||
На этом уроке мы создадим папку для изображений, разместим там изображение по умолчанию, а также создадим универсальные параметры пути и изображения по умолчанию
Отчёт отправил: 2146. Иван Выполнено за 48 мин. [Показать отчёт] Научился: Использовать параметры! Сложности: Спасибо, Все получилось, нигде не запутался. |
|||||
37 | Изображения - модель формы |
|
|||
На этом уроке мы создадим модель PhotoForm для работы с изображениями Отчёт отправил: 2146. Иван Выполнено за 13 мин. [Показать отчёт] Научился: Создавать модель для загрузки фотографий. Сложности: Спасибо. |
|||||
38 | Изображение - загрузочное представление |
|
|||
На этом занятии мы создадим форму представления, через которое будет загружаться изображение Отчёт отправил: 2146. Иван Выполнено за 26 мин. [Показать отчёт] Научился: Посмотрел, как программно делать форму! Все получилось! Сложности: Недонабрал одну буковку. Но быстро нашел где. Работает! Это не может не радовать! |
|||||
39 | Изображение - загрузка файла на сайт |
1 тест |
|||
На этом уроке мы реализуем алгоритм загрузки изображений на сайт
Отчёт отправил: 2146. Иван Выполнено за 1 день 4 час. 29 мин. [Показать отчёт] Научился: Научился загружать фалы в нужную папку средствами Yii Сложности: Понял, что надо быть еще внимательнее! |
|||||
40 | ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР |
без видео |
|||
Мы уже многое сделали на нашем видеокурсе, и автору очень важно узнать Ваше мнение о данном курсе и получить обратную связь в форме видео-презентации и ответов на вопросы. Сделай видео-презентацию своего сайта. Отчёт отправил: 2146. Иван Выполнено за 10 мин. [Показать отчёт] Научился: Вспомнил, как пользоваться openserver. Впервые использовал Apache netbeans. Так же впервые использовал фреймворк YII. И не просто использование Yii , да еще и с использование ООП! Сложности: Сначала показалось, что фреймворк довольно сложный. Но через уроков 15-20 вижу, что если к нему привыкнуть, то много чего можно сделать и довольно быстро. Спасибо за курс! Буду дальше грызть гранит науки. Видеообзор: vJ5ABNWbaUk |
|||||
41 | Изображение - сохранение пути в базу |
|
|||
На этом уроке мы реализуем сохранение пути к файлу изображений в базу данных
Отчёт отправил: 2146. Иван Выполнено за 3 час. 4 мин. [Показать отчёт] Научился: Повторил все по видео. Сложности: Долго искал ошибку. Оказалось, что у меня не передавался id в фото контроллере в actionAdd. Еще заметил:( опишу последовательность действий) На странице с объявлениями нажимаем кнопку "фото" -> попадаем на страницу photo/index?id=2 (допустим с индексом 2). А при нажатии на кнопку "добавить файл" адрес уже такой photo/add?id=1. Почему тут индекс становится "один" пока не очень понял. При этом на мой неопытный взгляд все отрабатывает правильно. Еще , думаю, нам пригодится кнопка "удалить фото" , если вдруг не то загрузил. |
|||||
42 | Изображение - управление картинками |
|
|||
На этом уроке мы займемся дизайном - создадим выпадающее меню управления изображением
Отчёт отправил: 2146. Иван Выполнено за 10 мин. [Показать отчёт] Научился: Учусь пользоваться bootstrapom. Сложности: Бутстрап пока для меня является маленьким чудом! |
|||||
43 | Изображение - JS - немного теории и пижонства |
1 тест |
|||
На этом уроке мы рассмотрим работу JS на yii2
Отчёт отправил: 2146. Иван Выполнено за 1 час. 41 мин. [Показать отчёт] Научился: Регистрировать js в yii. Сложности: Чуть не закопался с простым уроком. Все время выдавало ошибку, писал, что неожиданный конец файла. Выяснилось, что когда я набирал <<< , то что-то пошло не так. Пробовал и так , и эдак. Ничего не получалось. Все поудалял. Начал все по одной строчке проверять. Выяснилось, что -то было не так именно с <<<. Только после того, как перенабрал эту строчку все заработало. Спасибо за урок! |
|||||
44 | Изображение - JS - глобализация |
|
|||
На этом уроке мы перенесем все скрипты JS в отдельный файл, а также реализуем открытие и скрытие элементов ввода информации Отчёт отправил: 2146. Иван Выполнено за 1 час. 17 мин. [Показать отчёт] Научился: подключать глобально javascript. Сложности: О-хо-хо! Уж все по символу проверял. Какой-то у меня шрифт, что кавычки и апостроф смотрятся как одно целое. Решил я их пробелом разделить, и из-за этого скрипт не работал. Да! Как же тут не хватает какого-нибудь дебагера на пробелы php-шные! Это хорошо, что видео есть, а если его нет!? Что тогда будет с нами :) С C# как-то попроще получается :) Итак, самая сложная строчка : $("[data-id='" + r + "'].infofield").show(); |
|||||
45 | Изображение - JS - сохранение информации в базу |
1 тест |
|||
На этом уроке мы научим нашу систему сохранять информацию об изображениях в базу с использованием технологии ajax Отчёт отправил: 2146. Иван Выполнено за 51 мин. [Показать отчёт] Научился: Впервые увидел реализацию ajax. А также работа с ним на php и yii. Сложности: Спасибо. Все получилось. Кажется на этот раз осознал, как сохранять данные в базу. Сколько же уже всего интересного придумано! |
|||||
46 | Изображение - JS - извлечение методом ajax |
|
|||
На этом уроке мы научим ajax получать информацию об изображениях из базы
Отчёт отправил: 2146. Иван Выполнено за 15 час. 4 мин. [Показать отчёт] Научился: Используем запросы ajax Сложности: Все сделал, но в firefox происходило что-то странное. Открыл хром. В нем все отработало правильно. После хрома и firefox заработал. И что там у них внутри происходит? Как понять, это у меня в коде была ошибка, или браузер некорректно отрабатывает...... |
|||||
47 | Изображение - аватарка - вывод на главной странице |
|
|||
На этом уроке мы реализуем вывод главных изображений каждого объявления (далее - аватарки) на главной странице Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт] Научился: Учусь понимать взаимосвязи разных компонентов и файлов в нашем проекте Сложности: Обошлось без приключений. Спасибо! |
|||||
48 | Изображение - аватарка - работа над ошибками связей |
|
|||
На данном уроке мы исправим ошибки вывода фотографий, очистим базу и заново загрузим в нашу базу фотографии в одно из объявлений Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: Искать ошибки Сложности: Спасибо. После исправлений ничего не сломалось, все заработало. |
|||||
49 | Изображение - аватарка - как стать главной |
|
|||
На этом уроке мы создадим код, делающий любое фото главным
Отчёт отправил: 2146. Иван Выполнено за 9 час. 20 мин. [Показать отчёт] Научился: Искать ошибки Сложности: Прошлый урок прошел замечательно. По началу думал, что так будет и с этим, т.к. вроде очень хорошо понимал, что делает код. В итоге проверяю - не работает. С утра потратил часа 2 на поиск ошибки, все безрезультатно!. Зная такую дурацкую проблему с долгим поиском ошибок , решил бросить все и заниматься другими делами. Благо семья с двумя детьми без дел не оставит. Вечером вернулся к проблеме. Вспомнил, что в хроме есть инструменты разработчика, а там отладочная консоль. Через нее увидел, что проблема с одной переменной в main.js. В итоге оказалось , что currPhotoId написал с одной r ! После исправления этой ошибки все заработало! Ну почему я с утра не смог найти эту досадную ошибку!? |
|||||
50 | Изображение - удаление - ни шагу без подтверждения! |
|
|||
На этом уроке мы реализуем всплывающее окно подтверждения действия и протестируем результаты выбора различных вариантов Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт] Научился: Узнал о варианте алерта под названием confirm Сложности: Все получилось. Решил, что все переменные буду копировать из первоисточника. Так я смогу победить свои ошибки. |
|||||
51 | Изображение - удаление - удаление файла и записи |
|
|||
На этом уроке мы реализуем удаление файлов изображений и записей о них из базы данных
Отчёт отправил: 2146. Иван Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: научился удалять из базы данных. Но надо еще понять , что такое unlink Сложности: Есть еще непонятное поведение. В firefox не очень работает ajax. А в хроме все работает отлично! Пока не понял с чем это связано. |
|||||
52 | Главная страница - подробности - ссылки и заготовка представлени |
|
|||
На этом уроке мы создадим ссылки для объявлений на главной странице и заготовку представления для подробного вывода информации объявления Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт] Научился: public function actionViewBulletin($id=1) { $bulletin = BulletinsRecord::findOne($id); return $this->render('viewbulletin', ['bulletin'=>$bulletin]); } В рендере есть название страницы , которую будем вызывать, и передаем массив с данными с именем bulletin. Сложности: Еще учить и учить конструкции всех этих фреймворков! |
|||||
53 | Главная страница - подробности - больше подробностей |
|
|||
На этом уроке мы выведем максимум информации на страницу подробностей объявления
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: Выводить информацию с помощью html и php Сложности: Получилось. Спасибо |
|||||
54 | Главная страница - подробности - расширяя информацию |
1 тест |
|||
На этом уроке мы внесем в наш код изменения, которые позволят сохранять объявления с большим количеством информации Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт] Научился: Узнал о функции nl2br(); Повторил миграции. Узнал, как установить longtext! Сложности: Спасибо. Продвигаемся. И даже получается! |
|||||
55 | Главная страница - оформление - дизайн объявления |
|
|||
На этом уроке мы зададим стиль дизайна объявления
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: Использовать gliphicon и разные классы Сложности: Спасибо. Все познавательно. |
|||||
56 | Главная страница - оформление - дизайн элементов базовой страницы |
1 тест |
|||
На этом уроке мы выведем информацию о себе в элементе footer и сделаем главное меню стильным и красивым
Отчёт отправил: 2146. Иван Выполнено за 16 мин. [Показать отчёт] Научился: Использовать css. Увидел, где, что находится. Сложности: Украшать я люблю. Спасибо! |
|||||
57 | Главная страница - оформление - ловим цвет пикселя |
|
|||
На этом уроке мы рассмотрим использование инструментов определения цвета пикселя (Пипетка) Отчёт отправил: 2146. Иван Выполнено за 6 мин. [Показать отчёт] Научился: Узнал, что есть пипетка в firefox. Буду теперь пользоваться Сложности: Сложностей не возникло. |
|||||
58 | Главная страница - оформление - смотрим все изображения |
|
|||
На этом уроке мы реализуем просмотр всех изображений объявления "не хуже, чем на Avito"
Отчёт отправил: 2146. Иван Выполнено за 31 мин. [Показать отчёт] Научился: Использовать javascript, узнал, где все это можно хранить. Использование $('.bullphotos').hover(function() { document.getElementById('bullavatar').src = this.getAttribute('src'); }); Сложности: Честно признаюсь, что никак не ожидал, что такое можно сделать буквально в 5 строчек кода. |
|||||
59 | Главная страница - оформление - стильный логотип |
|
|||
На этом уроке мы реализуем вывод логотипа в иконку проекта и в пункт меню перехода на главную страницу
Отчёт отправил: 2146. Иван Выполнено за 30 мин. [Показать отчёт] Научился: Приклеивать лого. Сложности: Получилось отодвинуть слова с помощью Может все дело было в точке с запятой? Удивило, что можно html использовать, казалось бы, в текстовом поле. Спасибо. |
|||||
60 | Главная страница - оформление - оповещения через баннер |
|
|||
На этом уроке мы создадим баннер для оповещений, новостей
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт] Научился: добавлять банер Сложности: Все получилось! В банере можно выводить рекламные предложения и не только! |
|||||
61 | Разделы (темы) - немного теории |
|
|||
На этом уроке мы рассмотрим вопрос тематик объявлений на нашем сайте, а также составим план (структуру) таблицы тем Themes и связующей таблицы ThemesBulletins
Отчёт отправил: 2146. Иван Выполнено за 11 мин. [Показать отчёт] Научился: Вспомнил, что такое отношения многие ко многим. Сложности: В разделе "Недвижимость" у меня точно будет три раздела Сдача в наем, Покупка и Продажа |
|||||
62 | Разделы (темы) - миграции с внешними ключами |
|
|||
На этом уроке мы создадим миграции таблиц themes и themesbulletins, сами эти таблицы и их модели ActiveRecord с внешними связями
Отчёт отправил: 2146. Иван Выполнено за 48 мин. [Показать отчёт] Научился: Повторил создание таблиц. Узнал как создавать внешние ключи средствами yii Сложности: Все получилось. Понемногу перестаю бояться миграций... |
|||||
63 | Обратная связь - мозговой штурм - внештатные ситуации |
|
|||
В данном уроке попрошу Вас выполнить небольшую самостоятельную работу и дать обратную связь. Отчёт отправил: 2146. Иван Выполнено за 1 день 19 час. 40 мин. [Показать отчёт] Научился: Узнал, что при вводе html кода, то он корректно отображается в итоге на странице. Сложности: удалось зарегистрировать пользователя с одинаковым именем. Фотографию с другим расширением загрузить не дал. С sql инъекциями, что-то не пошло - не очень понял как их делать. На хабре статью прочитал. Поставил в адресной строке после адреса апостроф. Yii ошибку не вывел, типа так тоже пойдет. https://habr.com/ru/post/148151/. В остальном, особых проблем не заметил. Прошу домашку не минусовать, уж очень хочется посмотреть, что там дальше будет. И так с уроком подзадержался :( |
|||||
64 | Разделы (темы) - вывод тем в объявлении |
|
|||
На этом уроке мы реализуем вывод тем на странице объявления
Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт] Научился: Добавлять связи. Сложности: Получилось. Было не совсем просто найти в каких местах что исправлять. |
|||||
65 | Разделы (темы) - меню тематик |
|
|||
На этом уроке мы реализуем вывод ссылок на темы на главной странице и подсчет объявлений в каждой теме
Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: узнал, что есть класс class="badge" Сложности: Надо почитать, что за класс class="jumbotron" Спасибо. Все получилось |
|||||
66 | Разделы (темы) - тематические выборки |
|
|||
На этом уроке мы реализуем выбор объявлений по темам и вывод их на основную страницу
Отчёт отправил: 2146. Иван Выполнено за 40 мин. [Показать отчёт] Научился: Все добавил согласно видео. Сложности: Все получилось. Спасибо. Что-то вдруг забыл как это мы добираемся: $tb->bulletins->status. Плохо делать перерывы. Не помню, откуда взялся тут у нас bulletins. Буду вспоминать. |
|||||
67 | Разделы (темы) - полезные переходы |
|
|||
На этом уроке мы реализуем возвращение со страницы объявлений на предыдущую страницу, а также переходы по темам объявления по типу хештегов
Отчёт отправил: 2146. Иван Выполнено за 25 мин. [Показать отчёт] Научился: Еще раз повторили использование стиля btn btn-primary, btn-default Сложности: Спасибо. Все получилось. |
|||||
68 | Разделы (темы) - администрирование - теория и заготовки |
|
|||
На этом уроке мы создадим контроллер для администрирования разделов (тем) и представление index
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт] Научился: добавлять новые кнопки для меню Сложности: В этот раз обошлось без ошибок. |
|||||
69 | Разделы (темы) - администрирование - все темы в таблицу |
|
|||
На этом уроке мы выведем существующие темы в таблицу и зададим им элементы управления
Отчёт отправил: 2146. Иван Выполнено за 2 час. 37 мин. [Показать отчёт] Научился: Добавил кнопки для управления тем Сложности: Вспомнил, как писать glyphicon. |
|||||
70 | Разделы (темы) - администрирование - подтверждение удаления |
|
|||
На этом уроке мы реализуем алгоритм подтверждения удаления и создадим соответствующее представление
Отчёт отправил: 2146. Иван Выполнено за 21 мин. [Показать отчёт] Научился: Создали файл deletequery. Сложности: Все получилось, спасибо! |
|||||
71 | Разделы (темы) - администрирование - удаление разделов и чистка связей |
|
|||
На этом уроке мы окончательно удалим раздел, а перед этим удалим все его связи с объявлениями
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт] Научился: Создал действие delete. Сложности: Не могу вспомнить , где мы устанавливаем $themesBulletins = $this->themesbulletins; Вот последнее слово, видимо это псевдоним, Вот где мы его установили? и система его прекрасно знает, а я нет ... :( |
|||||
72 | Разделы (темы) - администрирование - Обычный ThemesForm |
|
|||
На этом уроке мы создадим модель ThemesForm, заготовку действия Add в контроллере Themes и представление под него
Отчёт отправил: 2146. Иван Выполнено за 18 мин. [Показать отчёт] Научился: Создавать новую модель для создания формы новых тем Сложности: Надеюсь, что все получилось. На сколько я понял, в папке models у нас хранятся разные формы для рендеринга наших новых страниц. |
|||||
73 | Разделы (темы) - исправление подсчета и отображение текущей темы |
|
|||
Hа этом уроке мы исправим ошибку подсчета, обнаруженную в процессе прохождения курса, а также отобразим текущую тему, по которой выборка объявлений, в баннере Отчёт отправил: 2146. Иван Выполнено за 16 мин. [Показать отчёт] Научился: Сделали правильный подсчет опубликованных объявлений Сложности: Спасибо ! Все получилось! |
|||||
74 | Разделы (темы) - администрирование - "темное" представление |
|
|||
На этом уроке мы создадим поля для редактирования или добавления темы в представлении themes\add
Отчёт отправил: 2146. Иван Выполнено за 35 мин. [Показать отчёт] Научился: Создавать новую форму и передавать ей переменные Сложности: Все набрал и все получилось. C# мне давался почему-то проще. Вроде все понятно, что делаем, но без видео вряд ли получится сделать такое. Спасибо. Надеюсь, что когда-нибудь количество перейдет в качество. |
|||||
75 | Разделы (темы) - администрирование - волшебный выпадающий список |
1 тест |
|||
На этом уроке мы создадим выпадающий список выбора родительской темы
Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт] Научился: Создавать dropDownList Сложности: Случилось еще одно чудо. Буквально в 3 строчки кода весь список у нас появился. Красиво! |
|||||
76 | Разделы (темы) - администрирование - сохранение темы |
|
|||
На этом уроке мы реализуем сохранение добавляемых и редактируемых тем
Отчёт отправил: 2146. Иван Выполнено за 57 мин. [Показать отчёт] Научился: реализовали кучу методов. Сложности: Пришлось поискать ошибки, т.к. фигурные скобки пошли впляс. + где-то слеш не поставил. Работает, но пока чудесным образом. |
|||||
77 | Разделы (темы) - администрирование - рефакторинг и валидация |
|
|||
На этом уроке мы сделаем рефакторинг нашего представления add и валидацию данных формы ThemesForm
Отчёт отправил: 2146. Иван Выполнено за 29 мин. [Показать отчёт] Научился: Перенесли функцию Сложности: Спасибо. Все получилось |
|||||
78 | Связи объявлений и тем - заготовка |
|
|||
На этом уроке мы создадим действие в контроллере BulletinsController и представление, которые помогут нам работать со связями объявлений и тем Отчёт отправил: 2146. Иван Выполнено за 28 мин. [Показать отчёт] Научился: Добавили режим тем., действие и представление. Сложности: Продвигаемся. Проект обрастает функционалом с небывалой скоростью! Спасибо за классные уроки! |
|||||
79 | Связи объявлений и тем - добавление новой темы |
|
|||
На этом уроке мы научим нашу систему добавлять новую тему в объявление (делать связь темы и объявления)
Отчёт отправил: 2146. Иван Выполнено за 6 час. 42 мин. [Показать отчёт] Научился: Спасибо, получился насыщенный урок. Сделали форму, создали выпадающий список тем, теперь умеем выбирать и сохранять темы! Сложности: Все сделал по видео, Все получилось. И ошибки все быстро нашел и исправил. Чудесным образом все работает! |
|||||
80 | Связи объявлений и тем - темы, которых не было |
1 тест |
|||
На этом уроке мы научим нашу систему выводить в список добавляемых в объявление тем только те, которые не прикреплены к нашему объявлению
Отчёт отправил: 2146. Иван Выполнено за 1 день 25 мин. [Показать отчёт] Научился: $tb= ThemesbulletinsRecord::find() ->select('themes_id as id') ->where(['bulletins_id'=>$bulletins_id]) ->all(); $themes = ThemesRecord::find() ->where(['not in','id',$tb]) ->all(); return $themes; узнал о новых конструкциях Сложности: Все получилось. Но скобки с первого раза не везде поставил, и получил интересные ошибки |
|||||
81 | Связи объявлений и тем - темы, которых не будет |
|
|||
На этом уроке мы научим нашу систему удалять из объявлений темы, к которым наше объявление привязывать не надо
Отчёт отправил: 2146. Иван Выполнено за 22 мин. [Показать отчёт] Научился: создали новое действие по удалению ненужных тем. Сложности: Спасибо. Теперь все добавляется и удаляется. Это здорово |
|||||
82 | Глобальный поиск - поле поиска в меню |
|
|||
На этом уроке мы добавим поле поиска в навигационное меню сайта, а также решим вопрос с активными пунктами меню.
Отчёт отправил: 2146. Иван Выполнено за 34 мин. [Показать отчёт] Научился: Создавать ActiveForm Сложности: Сначала написал все вне формы NavBar::begin([ ... и мой поиск не отобразился. После проверки, заметил, что он должен находится внутри этого NavBar. В итоге все заработало! Еще один чудесный момент курса!. Когда не совсем понимаешь что делаешь, то это похоже на чудо. |
|||||
83 | Глобальный поиск - ищем глобально |
|
|||
На этом уроке мы создадим алгоритм поиска по вводимому в поле search контенту
Отчёт отправил: 2146. Иван Выполнено за 39 мин. [Показать отчёт] Научился: Реализовали поиск Сложности: $bulletins= BulletinsRecord::find() ->where([ 'AND', ['status'=>'public'], [ 'OR', ['like','title', $search], ['like','info', $search], ['like','city', $search], ], ]) ->all(); Ну это круто. Это синтаксис запросов именно Yii? C sql встречался и использовал, но такую форму записи увидел впервые. Спасибо. Урок очень понравился |
|||||
84 | Расширенный поиск - группировка пунктов главного меню |
|
|||
На этом уроке мы сгруппируем пункты главного меню в подразделы, и сделаем в нем ссылку на страницу расширенного поиска Отчёт отправил: 2146. Иван Выполнено за 1 час. 31 мин. [Показать отчёт] Научился: Создали выпадающие меню echo Nav::widget([ 'options' => ['class' => 'navbar-nav navbar-left'], 'items' => [ [ 'label' =>'', 'url' => ['#'], 'items' =>[ [ 'label' => 'Расширенный поиск', 'url' => ['/site//advsearch']] ], ], ], ]); Сложности: Получилось. Но почему-то стили у меня не совсем правильно отображаются. Что-то удалось с этим сделать, но пока до конца еще не разобрался как это исправить |
|||||
85 | Расширенный поиск - заготовки и план |
|
|||
На этом уроке мы набросаем план будущей страницы расширенного поиска, а также создадим действие контроллера и заготовку представления расширенного поиска Отчёт отправил: 2146. Иван Выполнено за 12 мин. [Показать отчёт] Научился: Планировать свои дейстивя Сложности: Спасибо |
|||||
86 | Расширенный поиск - стили и форма |
|
|||
На этом уроке мы внесем исправления в стили субменю и сделаем модель формы расширенного поиска
Отчёт отправил: 2146. Иван Выполнено за 23 мин. [Показать отчёт] Научился: Создание формы Сложности: Очень радует, что еще и еще раз создаем формы. Понемногу начинает укладываться в голове. Спасибо. |
|||||
87 | Расширенный поиск - дизайн текстовых полей и кнопки |
|
|||
На этом уроке мы прокачаем навыки дизайна текстовых полей, создания активной формы в представлении, а также создания кнопки через хелперы yii2 Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт] Научился: Создали форму и вывели ее на страничку Сложности: Все получилось. не обошлось без ошибок, но все удалось исправить. |
|||||
88 | Расширенный поиск - цена - выбор варианта |
|
|||
На этом уроке мы создадим систему управления выбором варианта поиска по цене
Отчёт отправил: 2146. Иван Выполнено за 2 час. 5 мин. [Показать отчёт] Научился: использовать jquery Сложности: C удивлением обнаружил, что у меня нет еще файла main.js. Но есть bul.js. В итоге все работает, но интересно, когда я успел потерять этот файл |
|||||
89 | Расширенный поиск - цена - невидимые поля |
|
|||
На этом уроке мы создадим невидимые блоки с полями поиска цены, которые становятся видимыми при нажатии определенного пункта навигатора
Отчёт отправил: 2146. Иван Выполнено за 1 час. 1 мин. [Показать отчёт] Научился: Создавать формы Сложности: Спасибо! Очень познавательный урок. Интересно было увидеть связку php, jquery, js. |
|||||
90 | Расширенный поиск - дата публикации - виджет извне |
|
|||
На этом уроке мы установим в наш проект компонент jui от стороннего разработчика и создадим календарики для выбора дат Отчёт отправил: 2146. Иван Выполнено за 54 мин. [Показать отчёт] Научился: Добавлять компоненты в yii и их использовать. Сложности: Спасибо ! Сколько же всего надо знать, чтобы все это делать! Отличные уроки, т.к. все получается, и это очень радует! |
|||||
91 | Расширенный поиск - результаты выборки - частичное представление |
|
|||
На этом уроке мы рассмотрим возможность использования частичного представления в yii2-проекте и выведем в частичное представление карточку объявления
Отчёт отправил: 2146. Иван Выполнено за 41 мин. [Показать отчёт] Научился: Создали новое представление bulletin. И использовали его для всех частей сайта: и для главной страницы , и для страницы поиска. + узнал, что есть бейджики, очень мне понравились. Сложности: Здорово все получается!. Появился у меня вопрос. Заметил, что когда мы подставляем в код html данные из php, то используем краткую запись начала php. Т. е. <?= ..... ?>. А иногда, например для закрытия фигурных скобок используем то же самое , но без знака '=' ( <? } ??> И вот у меня вопрос: Почему мы используем второй раз без знака = ? Понимаю, что вопрос из детского сада, но пока еще не нашел объяснения. |
|||||
92 | Расширенный поиск - генератор поиска - возвращение к SQL-запросу |
|
|||
На этом уроке мы создадим генератор отчета, используя работу ActiveRecord фреймворка yii2 c sql-запросами, и включим в него поиск по текстовым полям формы расширенного поиска Отчёт отправил: 2146. Иван Выполнено за 8 час. 57 мин. [Показать отчёт] Научился: НАучился выполнять sql запросы Сложности: Получилось! Спасибо. Свои ошибочки пришлось половить... |
|||||
93 | Расширенный поиск - генератор поиска - ограничивающие даты |
|
|||
На этом уроке мы добавим в генератор отчета расширенного поиска выборку по датам публикации Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт] Научился: Научили сайт поиску по датам! Сложности: Спасибо. Опять все получилось! |
|||||
94 | Расширенный поиск - генератор поиска - три вида цены и один POST |
|
|||
На этом уроке мы реализуем различные варианты выборки объявлений по цене и добавим их в наш генератор расширенного поиска Отчёт отправил: 2146. Иван Выполнено за 33 мин. [Показать отчёт] Научился: Создавать правильные условия Сложности: Все получилось. Спасибо! |
|||||
95 | Обратная связь - свой сайт объявлений |
без видео |
|||
И снова обратная связь.Подумаем самостоятельно и ответим на вопросы: Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: Сайт могу назвать kupiprodaj.ru что в переводе КупиПродай. Сложности: Быть креативным всегда сложно... Пока нашел только то, что лежало на поверхности :) |
|||||
96 | Расширенный поиск - генератор поиска - показать, что нужно |
|
|||
На этом уроке мы реализуем отображение той вкладки поиска по ценам, по которой производился поиск Отчёт отправил: 2146. Иван Выполнено за 44 мин. [Показать отчёт] Научился: Делать изменения, чтобы все работало Сложности: Даже если нолик оставишь в поле, то выделяется по последнему введенному полю активная вкладка. А если полностью бекспейсом удалять, то все работает как надо. Но так и должно быть по нашей задумке. Спасибо за урок. Еще раз посмотрел, как работают все наши файлы вместе, и как один зависит от другого. Это для меня очень ценно. |
|||||
97 | Работа с документацией Yii2 |
|
|||
На этом уроке переходим на один из официальных сайтов по Yii2 и, пользуясь помощью документации, реализовываем одну из своих идей Отчёт отправил: 2146. Иван Выполнено за 3 час. 44 мин. [Показать отчёт] Научился: использовать функцию exists(); а также узнал о unique в правилах ActiveRecords Сложности: Наконец, Сделал этот урок. Прошлый урок сделал 25 мая. Это был самый сложный урок. Заметил, что у нас можно регистрировать людей с одинаковыми логинами. Решил это исправить. Долго искал место, где же это надо сделать. Методом проб и ошибок с трудом нашел, куда же это можно прикрутить. Не уверен, что сделал это там , где нужно. Но для меня было главным, чтобы заработало. А то в процессе поиска пару раз совсем сломал все. А бекапа не делал. Рад, что все-таки удалось починить. |
|||||
98 | Пользователи и роли - планирование ролевой модели |
|
|||
На этом уроке мы составим ролевую модель пользователей нашего сайта
Отчёт отправил: 2146. Иван Выполнено за 17 мин. [Показать отчёт] Научился: Думать о ролях в нашей жизни Сложности: Итак! У нас пять ролей: superadmin - может все admin - может почти все moderator - снимает публикации что неугодно user - добавляет и редактирует свои объявления guest - только просматривает объявления |
|||||
99 | Пользователи и роли - фильтры контроля доступа ACF - теория и эксперименты |
|
|||
На этом уроке мы рассмотрим принципы работы фильтров контроля доступа ACF
Отчёт отправил: 2146. Иван Выполнено за 15 мин. [Показать отчёт] Научился: узнал о behaviours, что в переводе оказалось "стереотипы поведения" Сложности: Понятно, что это малюсенькая верхушка какого-то огромного айсберга |
|||||
100 | Пользователи и роли - фильтры контроля доступа ACF - фильтруем всё |
|
|||
На этом уроке мы сами создадим метод behaviors() в BulletinsController и зададим нужные фильтры для действий контроллера
Отчёт отправил: 2146. Иван Выполнено за 27 мин. [Показать отчёт] Научился: научился использовать behaviorы Сложности: Добавил эту функцию во все классы-контроллеры |
|||||
101 | Пользователи и роли - роли через RBAC - теория, установка и миграции |
|
|||
На этом уроке мы установим расширение RBAC, настроим подключение к RBAC и создадим базы для авторизации при помощи механизма миграции Отчёт отправил: 2146. Иван Выполнено за 24 мин. [Показать отчёт] Научился: Узнал о Yii2 RBAC Extension Сложности: находится здесь https://github.com/yii2mod/yii2-rbac. Управление доступом на основе ролей (англ. Role Based Access Control, RBAC) — развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учётом специфики их применения, образуя роли. |
|||||
102 | Пользователи и роли - роли через RBAC - тесты и практика |
|
|||
На этом уроке мы создадим тестовые роли и разрешения, а также проверим работу контроллера согласно разрешений Отчёт отправил: 2146. Иван Выполнено за 2 час. 53 мин. [Показать отчёт] Научился: Запоолнять таблицы программно Сложности: догадался, что в дальнейшем init должен быть один раз вызван. Долго не мог понять, почему у меня render не отрабатывал. Оказалось, что я увеличил окно в браузере, и весь текст, видимо, спрятался за меню. Стоило уменьшить масштаб страницы в браузере, как все появилось. |
|||||
103 | Пользователи и роли - роли через RBAC - вносим действия в план |
|
|||
На этом уроке мы добавим действия к ролям в нашей актуальной ролевой модели
Отчёт отправил: 2146. Иван Выполнено за 11 мин. [Показать отчёт] Научился: Практикуемся планировать. Сложности: Все переписал в свой текстовый файлик. Спасибо |
|||||
104 | Пользователи и роли - роли через RBAC - реализация плана |
|
|||
На этом уроке мы создадим актуальные роли и действия для пользователей нашего сайта | |||||
105 | Пользователи и роли - ACF+RBAC - ограничим доступ к темам |
|
|||
На этом уроке мы реализуем ролевую модель для контроллера тем | |||||
106 | Пользователи и роли - управление ролями и привилегиями - контроллер и таблица ролей |
|
|||
на этом уроке мы создадим контроллер и представление для управления ролями | |||||
107 | Пользователи и роли - управление ролями и привилегиями - форма добавления роли |
|
|||
На этом уроке мы создадим действие добавления роли и форму добавления роли |
|||||
108 | Пользователи и роли - управление ролями и привилегиями - сохранение и удаление роли |
|
|||
На этом уроке мы реализуем сохранение роли, а также напишем алгоритм удаления роли | |||||
Итого: 108 видеоуроков |
23 час. 33 мин. 25 тестов |
3 чел. | |||
Финалисты: Жан, Николай Денисов, Tom . |