Size: a a a

Laravel для начинающих

2021 May 04

MO

Max Orlov in Laravel для начинающих
Или completed=1
источник

D

Developer in Laravel для начинающих
источник

D

Developer in Laravel для начинающих
у меня есть уже пройденные и незавершенные уроки
источник

MO

Max Orlov in Laravel для начинающих
У пройденных completed=1
источник

D

Developer in Laravel для начинающих
я имею в виду как защитить пользователя от новых незавершенных уроков
источник

А

Андрей in Laravel для начинающих
Ну так а нельзя при переходе на урок проверять, что урок, который перед ним, завершён?
источник

А

Андрей in Laravel для начинающих
Если нет, то слать нафиг
источник

А

Андрей in Laravel для начинающих
Правда я хз как)
источник

MO

Max Orlov in Laravel для начинающих
ну смотри

у тебя по сути может быть курс и юзер многие ко многим
таблица course_user (course_id, user_id)

и аналогично уроки к юзеру многие ко многим
таблица lesson_user (course_id, lesson_id, user_id, completed_at)

в таблице lesson_user поле completed_at - это дата завершения урока, если там null, значит урок еще НЕ завершен, а если дата - завершен

пример
$couse = $user->courses()->findOrFail(123)
$lessons = $user->lessons()->wherePivot('course_id', $course->id)->get();

проверка
$lesson = $lessons->findOrFail(123)
abort_unless($lesson->pivot->completed_at, 403)

таким образом, если этот урок не пройден, будет доступ запрещен

типа того
источник

MO

Max Orlov in Laravel для начинающих
$lesson = $lessons->findOrFail(123) тут я не совсем так написал, но суть думаю ясна
источник

MO

Max Orlov in Laravel для начинающих
а ну типа надо показывать юзеру первый НЕ завершенный урок, понял, тогда надо проверять, что предыдущий урок завершен

// текущий урок, к которому юзер хочет получить доступ
$lesson = $lessons->firstWhere('id', $id);

// если урока нет
abort_unless($lesson, 404);

// получаем предыдущий урок (тут они должны быть отсортированы)
$previous = $lessons->where('id', '<', $lesson->id)->first();

// если предыдущий урок есть, то смотрим что он завершен
$previous && abort_unless($previous->pivot->completed_at, 403);

// здесь можно отдавать юзеру урок ($lesson)

смысл примерно такой
источник

ТГ

Тимофей Громов... in Laravel для начинающих
подскажите пожалуйста, как это убрать, если в web.php меня путь роута вместо admin на adminka все ок
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
настроить правильно опенсервер
источник

ТГ

Тимофей Громов... in Laravel для начинающих
mamp)
источник

ПФ

Паша Финогентов... in Laravel для начинающих
Кто-то может объяснить что это и почему не использовать кастомный каст как обычно?
источник

ПФ

Паша Финогентов... in Laravel для начинающих
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
настроить правильно mamp
источник

ТГ

Тимофей Громов... in Laravel для начинающих
я юзаю php artisan serve
источник

AP

Alexander Pavlenko 🌚... in Laravel для начинающих
отключить мамп
источник

ТГ

Тимофей Громов... in Laravel для начинающих
тогда бд не будет
источник