Домашнее задание 27.11
- Scope Создать для пользователей – возможность выбирать активных с ролью admin или manager.
- Collection Дана коллекция пользователей User::get(); с полями role, is_active, email, login
- Превратить коллекцию в обычный массив
- Показать кол-во элементов коллекции
- Если коллекция не пустая, показать первого пользователя
- Удалить последний элемент
- Вывести yes, если все пользователи в коллекции незаблокированы
- Получить коллекцию только админов
- Отсортировать по login
- Применить любые 3 метода из документации
Домашнее задание 24.11
- Создать Job php artisan make:job которая удаляет все soft deleted суды. Вызывать асинхронно при создании нового суда. В .env настроить асинхронность. Создать миграцию jobs php artisan queue:table Выполнить задачи из очереди php artisan queue:work
- Необходимо заблокировать всех пользователей через job в очереди. Каждая job блокирует только одного пользователя. Реализовать
Домашнее задание 20.11
- Создать событие: пользователь зашел на страницу со списком пользователей. Тогда в логах должен появиться текст “Пользователь ФИО (id = …) зашел на страницу в 12:12:10 20.11.25”
Домашнее задание 17.11
- К модели User добавить Observer. На событие created добавить пользователю заявку Application. Обернуть это в транзакцию. При изменении пользователя удалять его заявку. Транзакцию реализовать 2 способами. Потестировать.
Домашнее задание 6.11
- Создать в таблице users поле role. Создать три middleware для ролей.
- Написать сидер для пользователей. Три пользователя с логинами admin, manager, laywer. Остальные 100 рандом. Пароль у всех одинаковый (функция bcrypt())
- Реализовать вход в личный кабинет: верстка в tg, изменить LoginController – функция redirectTo() и поле для авторизации изменить c email на login.
- Начать делать страницу для отображения списка пользователей у админа. Для этого layout с хедером, футером, сайдбаром. Для админа отдельная папка в views и Controllers
- Начать делать страницу профиля для админа. Смена пароля и изменение некоторых полей, показ информации о роли, id, дате регистрации.
Домашнее задание 3.11
- Установить laravel ui
Домашнее задание 30.10
- Прошлое дз
- Сессии
- Пользователь заходит на страницу и видит форму для ввода своего имени. Если он ввел свое имя и отправил форму, то при следующих заходах на страницу он видит не форму, а “Привет, [его имя]” и кнопку Забыть меня. При клике на кнопку он видит страницу с формой для ввода своего имени.
- Есть случайное число от 1 до 100. У пользователя три попытки его отгадать. Пользователь вводит число в форме и отправляет форму. Если угадал, то форма исчезает и текст “Поздравляем.” Если нет, сообщение меньше или больше загаданное число. При этом показывается кол-во оставшихся попыток.
- Есть User, Car, Company. У пользователя несколько машин, одна машина принадлежит только одному пользователю. Пользователь является владельцем только одной компании. Получить все машины и в blade вывести список этих машин, имя его владельца каждой, название компании владельца. На этом примере изучить проблему N+1 и решить ее.
Домашнее задание 26.10
- Применить каптчу к любой форме
- Создать связь 1:n у Car и User (на уровне бд в миграциях и на уровне моделей). Показать у данного пользователя все авто и у данного авто пользователя
Домашнее задание 23.10
- У статьи есть дата публикации. Если дата сегодня, то показывать “сегодня”, вчера – “вчера”, если в этом году – то день и месяц, если раньше, то день, месяц и год
- Сохранение данных с формы обратной связи в бд. Валидация в request, сообщение об успехе, сообщение об ошибке с показом введенных данных в форме.
Домашнее задание 09.10
- Установить пакет для slug Применить к лендингу – миграция, сидер для статьи. У статьи должен быть статус.
- Сделать показ списка статей. Если статей нет, то текст Статьи не найдены
- Сделать пункт меню выделенным отдельным стилем
Домашнее задание 05.10
- Почитать про casts. Применить к авто
- Добавить в модель Car свой атрибут full_description, который выводит все данные из бд через запятую.
- Натянуть верстку блога c layout и include.
- Почитать про faker
- Создать миграцию и сидер для формы обратной связи (php artisan db:seed, php artisan make:seeder SmthSeeder)
Домашнее задание 02.10
- Добавить soft delete для авто. Миграция, trait в Car. В списке авто показывать все авто, включая удаленные. Сделать возможность удалять полностью и мягко, восстанавливать.
- Добавить в модель car trait и метод для prunable – удаление старше недели. Проверить командой php artisan model:prune
- Добавить свой файл для англ. локализации my.php с ключом greeting и текстом приветствия. Использовать на странице списка авто.
- Создать свою консольную команду. При вызове показывает текущую дату. Причем будни зеленого цвета, иначе красного.
- Создать консольную команду sum. Пользователь вводит в команде аргумент – число k. Далее в самой команде запрашивается k любых чисел и показывается их сумма. Причем процесс суммирования показан с progress bar. Если число k не натуральное, сообщение об ошибке.
Домашнее задание 28.09
- Доделать CRUD cars. Для delete сделать get-ссылкой. Способ через delete-запрос изучить самостоятельно (но не делать).
- Добавить на store валидацию в своем request (команда php artisan make:request Cars/StoreRequest). Добавить свое сообщение об ошибке на одно из правил
- Прошлое дз доделать
Домашнее задание 25.09
- Сделать роут для показа одного авто. Кастомизировать 404 страницу (php artisan vendor:publish – выбрать errors). В списке авто сделать ссылку на каждый авто. На странице авто сделать ссылку на список.
- Создать форму для добавления авто – только марка и год. Не забыть про fillable в модели. Сделать простую валидацию – string, min: 2, year – integer, min 1990. В случае ошибки редирект на форму с текстом ошибки. В случае успеха редирект на страницу авто с текстом об успехе.
- Задачи 12, 14 carbon
- Model::preventAccessingMissingAttributes(); Model::preventSilentlyDiscardingAttributes(); – AppServiceProvider в boot(). – загуглить эти методы
Домашнее задание 22.09
- Прочитать про миграции Основные команды: php artisan migrate и php artisan make:migration
- Создать миграцию для сущности Car. Характеристики: модель, марка, год (integer), цвет, продана или нет (boolean), описание. Заполнить таблицу 3 авто.
- Создать модель Car с помощью команды php artisan make:model. Создать ресурсный контроллер только с методом index. И blade. Показать а) все авто б) все авто, упорядоченные по цвету в) все авто, у которых год меньше 2000 г) один авто, у которого id = 1 д) все авто красного цвета, год от 2000 до 2005 включительно audi.
Домашнее задание 18.09
- Хорошие практики Laravel – прочитать по диагонали
- Создание ресурсного контроллера php artisan make:controller PhotoController –resource Таблица методов
- Создание invoke контроллера php artisan make:controller ControllerName –invokable
- Создать роут и invoke контроллер – показ текста в браузере ‘Это invoke контроллер’
- Создать роут с параметром id – может быть только целым (сделать регулярку в самом роуте и потом заменить на требование в AppServiceProvider). Показ в браузере текста ‘Это число id’
- Прошлое дз с carbon + новая задача 12 (доделать с урока)
- Создать несколько роутов и объединить с prefix, name и controller. Потестировать.
- Создать ресурсный контроллер и роуты к нему. Протестировать методы index и show. php artisan make:controller PhotoController –resource
Домашнее задание 14.09
- Почитать про PSR по диагонали
- Carbon почитать разделы getters, settes, fluent setters, string formatting, difference, contants
- Посмотреть форматы php
- Создать форму – пользователь вводит два числа, показать под формой сумму (использовать ->with(‘message’, $sum). Не забыть про csrf – погуглить-почитать для общего развития подробнее.
- Carbon Задачи 2-6, 8, 10 Любые 2 задачи сделать через форму – ввод исходных данных и показ ответа под формой
Домашнее задание 11.09
- Создать роут /tasks с именем tasks. Создать роуты home/1109/task1, …, home/1109/task3 Для каждого роута создать blade-файл. На странице /tasks должны быть ссылки на task1-3. На страницах task1-3 ссылка Вернуться на главную.
- Task1. Изучить хелперы для работы с массивом Arr: прочитать все (поверхностно), поэкспериментировать с методами where, pluck, has, dot, join. В результате в контроллере задаются начальные данные для этих функций и вычисляются итоговые данные, а в blade показываются исходные данные, название метода и результат.
- Task2. Изучить хелперы для работы со строками Str: прочитать все (поверхностно), поэкспериментировать с методами limit, slug, finish, title, take, replace. В результате в контроллере задаются начальные данные для этих функций и вычисляются итоговые данные, а в blade показываются исходные данные, название метода и результат.
- Task3. На странице отображаются 10 случайных чисел от 1 до 10 случайного цвета.
- Прислать ссылку на github с дз (добавить пользователя gittadm в доступы).
Домашнее задание 07.09
- Зарегистрироваться на github
- Установить OpenServer, php 8.3, laravel 10 + LOG_CHANNEL=daily. Проверить работоспособность сайта – зайти на главную страницу.
- Написать readme проекта – изучить markdown и сделать как на скрине в тг
- Установить ide-helper и выполнить три команды: php artisan ide-helper:generate, php artisan ide-helper:models, php artisan ide-helper:meta
- Установить debugbar
- Каждую задачу в отдельный роут и метод контроллера. Применить команды php artisan make:controller, php artisan route:list. Роут создать в routes/web.php, контроллер в Http/Controllers
- Дан массив чисел. Определить, отсортирован ли он (по возрастанию или убыванию).
- Дана строка из цифр. Добавить пробелы через каждые три цифры, начиная справа. Например, ‘23456789’ -> ’23 456 789′
- Дана строка и число. Дополнить строку слева и справа пробелами так, чтобы длина строки стала равна данному числу, а исходный текст строки был в центре итоговой строки. Например, ‘ abc’ и 7 -> слева уже есть 2 пробела, значит, добавляем справа 2 пробела и получаем ‘ abc ‘.
- Сгенерировать случайный номер телефона России. Формат: +7(код)номер, код – задать несколько вариантов (из 3 цифр) в коде и выбирать случайно, номер – 7 цифр.
- Дан массив чисел. Найти наибольшее кол-во подряд идущих нулей в нем. Например, [0, 1, 0, 0, 0, 2, 3, 0, 0] -> 3
- Сгенерировать три различных случайных числа от 1 до 10.