Laravel создание Блога 26. Создаем Middleware для админки и auth middleware, делаем кнопку выхода

Поділитися
Вставка
  • Опубліковано 2 лют 2025

КОМЕНТАРІ • 71

  • @spawn7508
    @spawn7508 11 місяців тому +5

    Привет с 2024. Спасибо огромное за уроки)
    Если вы столкнулись с ошибка Vite manifest not found at: C:\Users\...\public\build/manifest.json то вот как я решил эту проблему.
    Для начала скачал Node.js. Установив его на винду зашёл в php и далее setting -> languages & Frameworks -> Node.js.
    Там в одном из полей я выбираю файл Node.js который скачивал, а ниже npm.
    Далее необходимо сохранить настройки, перезагрузить php шторм и ввести данные команды в консоль по порядку
    npm -v (увидеть версию)
    npm install (устанавливается всё необходимое)
    npm run build - и готово)

  • @ЯрославПахомов-ъ7х
    @ЯрославПахомов-ъ7х 2 роки тому +19

    Смотрю второй курс подряд (неделя - курс)!!! Идёт прям залпом выжимка самого нужного контента!! Материал просто огонь!!!!!!!!!!!!!!!!!! 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

    • @andrewlevitsky6270
      @andrewlevitsky6270 Рік тому +4

      Ну и что дали такие просмотрьі залпом?)) У меня в день по 2-3 урока не больше, на которьіе трачу минимум 4 часа, иначе ничего не усвоится...

    • @artem-web-developer
      @artem-web-developer Рік тому

      @@andrewlevitsky6270 у всех разные уровень программирования и разный уровень усвоения материала

  • @bg4zz
    @bg4zz Рік тому +4

    Может быть кто-то столкнётся с моей проблемой
    При запуске первоначально через php artisan serve у вас будет ошибка от отсутствии manifest.json (Vite manifest not found) и левее совет npm run
    Остановите проект CTRL + C
    После сделайте билд через npm run build (начнется сборка проекта, которая добавит необходимые файлы, тот же самый manifest.json)
    И запустите проект через php artisan serve
    Мне это помогло решить данную проблему
    ----
    Автору большое спасибо за его труды и вклад в обучение самоучек🙂

  • @vimitali7630
    @vimitali7630 3 роки тому +4

    Спасибо, за урок! Очень крутая и простая подача материала! Лучший курс по Laravel в разрезе создания блога! Совместно с "базовыми курсами" от автора - вообще ТОП! Автор огромная тебе благодарность и низкий поклон за труды.

    • @laravelcreative
      @laravelcreative  3 роки тому +1

      Благодарю, спасибо большое)!)!

    • @ВикторЗотов-л4э
      @ВикторЗотов-л4э Рік тому

      @@laravelcreative как решить при выходе со страницы админ, если нажать в браузере кнопку "назад", то вижу прежнюю страницу? Хотя нажал logout

  • @АндрейГалушко-е9о
    @АндрейГалушко-е9о 3 роки тому +3

    СПАСИБО ОГРОМНОЕ!!! материал ТОП!! 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

  • @Tuhtarov
    @Tuhtarov 3 роки тому +10

    Ух ты, растёшь..
    В прошлую неделю у тебя было 330 подписчиков где-то, сейчас уже на сотен больше)
    Мои поздравления)

  • @daenerystargaryen9028
    @daenerystargaryen9028 Рік тому +1

    тааак, это было сложно. у меня не было почему-то страницы логин(Route [login] not defined)(точнее на нее не было роута, когда сделала все равно не работал, просто белую страницу возвращал). гуглила, гуглила, решила поставить Laravel Breeze. надеюсь я этим ничего не сломала (никогда не пользовалась фреймворками. так что для меня все это сложно и не понятно). большое спасибо Вам за курс! разбираюсь по-тихоньку

  • @Аналитикаданных-в5ф
    @Аналитикаданных-в5ф 7 місяців тому

    Особенно приятны фразы: берем тута переносим тама

    • @HaveFunGameReels
      @HaveFunGameReels 5 місяців тому

      профессиональный подход сразу видно)))

  • @yurizvyagincev4013
    @yurizvyagincev4013 2 місяці тому +1

    в ларавел с 11 версии теперь регистрация middleware находится в файле bootstrap/app.php
    ->withMiddleware(function (Middleware $middleware) {
    $middleware->alias([
    'admin' => \App\Http\Middleware\AdminMiddleware::class,
    ]);
    })
    после если не заработало необходимо выполнить
    php artisan route:cache

  • @КосмоЁжик-е7т
    @КосмоЁжик-е7т 2 роки тому +1

    Благодарю за урок

  • @soundofsoul8731
    @soundofsoul8731 Рік тому

    Типові уроки. Бажання навчатись чомусь новому 102%.

  • @ЯрославАндроид-й7ч
    @ЯрославАндроид-й7ч 2 роки тому +2

    Спасибо, уроки ТОП

  • @Urbanious
    @Urbanious 3 роки тому +2

    Спасибо за урок

  • @emilsalimov4986
    @emilsalimov4986 2 роки тому +4

    У меня выходит ошибка Route [login] not defined.

  • @kashevsky
    @kashevsky 2 роки тому +1

    Самый лучший курс

    • @laravelcreative
      @laravelcreative  2 роки тому

      Благодарю!)

    • @andrewlevitsky6270
      @andrewlevitsky6270 Рік тому

      Привет, и как дела у тебя? Освоил Ларавел уже полностью?)

    • @kashevsky
      @kashevsky Рік тому

      @@andrewlevitsky6270 Привет! Думал, что более-менее освоил, а потом попал на практику и понял, что ничего не освоил)

  • @Olegcowboyoleg
    @Olegcowboyoleg 10 місяців тому

    Да, и как бы глупо это не звучало и дико не смотрелось, но можно вместо приведения к числу (int) писать "+"
    if (+auth()->user()->role !== User::ROLE_ADMIN)
    автоматическое неявное приведение типов (в JS так работает).
    Но лучше INT, тогда в будущем другим понятно будет.

  • @Olegcowboyoleg
    @Olegcowboyoleg 10 місяців тому +2

    2:28 на Лара10 нет такого поля, писать надо в protected $middlewareAliases = [];

  • @Olegcowboyoleg
    @Olegcowboyoleg 10 місяців тому

    Только не совсем понятно - а где у нас реализован маршрут {{ route('logout') }} ?? Где-то в Кернел ->Аутс ?

  • @everything_is_simple8
    @everything_is_simple8 2 роки тому +3

    ошибка,
    при создании юзера поле рол в null
    получается что юзер авторизованный вообще не относится не к читателю не к админу, это же бред
    в итоге если у юзера поле NULL то вход в админку проходит
    нельзя приводить NULL к значению (int)
    ___
    чтобы все адекватно работало нужно ставить полю role - default -> 1- читателя

    • @tori.archive
      @tori.archive 2 роки тому

      Для тех кто не знает, default вписывать в последнюю созданную миграцию ( add_column_role_to_users_table ). Это будет выглядить вот так: $table->unsignedSmallInteger('role')->default(1)->nullable();

  • @DimAlbisoara
    @DimAlbisoara Рік тому

    интерестно, как работает route('logout') если же у нас нету такого контроллера с таким именем?

    • @ramazanstudy570
      @ramazanstudy570 Рік тому

      в папке Controller есть папка Auth, где расположены нужные контроллеры
      а в web.php есть внизу строка Auth::routes()
      вот как то так но никак иначе

  • @evgenevgenijj6046
    @evgenevgenijj6046 Рік тому

    Скажите почему 404 ошибка при нажатии на 'выйти'?

  • @Tamagochi4x4
    @Tamagochi4x4 4 години тому

    Laravel 11+:
    php artisan ui bootstrap --auth

  • @ivanvinogradov1029
    @ivanvinogradov1029 Рік тому

    А как разделить юзерова для пользования админкой, и отдельно посетителей сайта, допустим мне для регистрации пользователя не сайте нужно о т него много инфы, зачем мне все это для админов. И даже ести потом создавать группы для посетителей.

    • @ВикторЗотов-л4э
      @ВикторЗотов-л4э Рік тому

      Админов и обычных юзеров всегда храните в разных таблицах. Для этого делаем разные майдлы.

  • @ДмитрийМорозов-ч5ф

    Выходит ошибка Route [login] not defined. Значит вам нужно подключить npm install , а потом npm run dev в консоль

  • @spitzer4077
    @spitzer4077 2 роки тому +1

    Всё норм, один только момент... почему abort(404) вместо abort(401)?

  • @ŁukaszLev
    @ŁukaszLev 2 роки тому +1

    Почему то не подключились стили на странице login. Как проверить где может быть ошибка?

    • @laravelcreative
      @laravelcreative  2 роки тому

      Ой где угодно, надо анализировать и копаться)

    • @krabik504
      @krabik504 2 роки тому

      В папке public у вас наверное нет css и js.

    • @ПетрНетёса-я1ь
      @ПетрНетёса-я1ь Рік тому +3

      Если кто ищет, мне помогла переустановка UI. Нужно ввести в консоли команды:
      composer require laravel/ui
      php artisan ui:auth
      php artisan ui bootstrap --auth
      npm install && npm run dev
      После чего стили должны подтянутся

  • @ДедИндиго-р1б
    @ДедИндиго-р1б 3 роки тому

    А можете подсказать... После выхода, когда заходишь снова, перекидывает на 404 ошибку, а в адресной строке написано home.

    • @laravelcreative
      @laravelcreative  3 роки тому +3

      Да, потому что мы сделали abort и 404, home страница тоже покрывается middleware, поэтому так.

  • @ridddlewrong
    @ridddlewrong Рік тому

    У кого ошибка Route [login] not defined. попробуйте разкоментить строчку
    //Auth::routes(); в web.php.
    Если после этого у вас появляется Vite manifest not found at: C:\OpenServer\domains\LaravelA\public\build/manifest.json
    То попробуйте подключить стили онлайн или если вы скачали на проект через бутстрап вручную в файле в котором ошибка.

  • @alexandr9900
    @alexandr9900 2 роки тому +1

    камент для продвижения

  • @АлексФлексов-и9ы
    @АлексФлексов-и9ы 7 місяців тому

    These credentials do not match our records. Кто сталкивался?

  • @movidikovich
    @movidikovich 3 роки тому

    У меня вопрос, а если есть 2 мидлвара которые должны иметь доступ к роуту или действию, ну скажем это манагер и админ, у одного 2 у другого 3, как тут быть?) Если просто в массиве передать не сработает

    • @laravelcreative
      @laravelcreative  3 роки тому +1

      Можно создать один мидлваре и там производить проверку и делать редиректы) Вариантов для реализации много)

    • @haykmxitaryandinamoboks9759
      @haykmxitaryandinamoboks9759 2 роки тому

      Укажи вот так работает.
      "Middleware" => ["мидлваер1"‚"мидлваер2"]

  • @usbeddvideo
    @usbeddvideo 3 роки тому

    Не получается авторизоваться - These credentials do not match our records.
    пользователь есть в БД, и пароль запомнил.....

    • @usbeddvideo
      @usbeddvideo 3 роки тому

      Странно, получилось авторизоваться только после того как зарегистрировался по ссылке Register на странице авторизации

    • @usbeddvideo
      @usbeddvideo 3 роки тому

      БД MySQL

    • @laravelcreative
      @laravelcreative  3 роки тому

      наверно при добавлении пользователя вносился пароль без Hash::make(тут пароль), так как при авторизации сравнение идёт через этот класс. При регистрации, пароль оборачивается в этот метод, поэтому сравнение проходит.

  • @alexeyalexey8197
    @alexeyalexey8197 3 роки тому

    Доброго дня! При удалении пользователя, нового пользователя с таким же email создать не получается, есть ли простое решение?

    • @laravelcreative
      @laravelcreative  3 роки тому +2

      У нас стоит софт делете) Поэтому пользователь по факту ЕСТЬ в системе, но он не активный. По этой причине, даже с логической стороны - недопустимо создавать нового пользователя. Тогда нужно реализовать функционал по его восстановлению, как например в вк. Человек заходит под емаилом, который по факту есть, тогда перенаправляется на страницу, где можно восстановиться(при внесении логина пароля и т.д.). Как вариант. Для этого следует сделать middleware, который будет эту проверку делать). Либо тогда убрать софт делете. Либо дать только админу возможность восстанавливать пользователя. И так далее) Вариантов много, тут важно знать, что хочет заказчик.

    • @alexeyalexey8197
      @alexeyalexey8197 3 роки тому +1

      @@laravelcreative Спасибо! В общем есть почва для размышлений! )))

  • @melissalife1818
    @melissalife1818 2 роки тому

    Почему route [login] undefined?

    • @ДмитрийМорозов-ч5ф
      @ДмитрийМорозов-ч5ф 2 роки тому

      Попробуй require __DIR__.'/auth.php'; в роуте в самом низу отдельно у меня за работало

  • @dmitriykuzminlvm34
    @dmitriykuzminlvm34 10 місяців тому

    Может быть кто-то столкнётся с моей проблемой
    Если у кого после после всех действий в ролике остаётся ошибка: The GET method is not supported for route logout. Supported methods: POST.
    То советую сделать следующее(мне помогло): добавьте роут Route::post('/logout', [HomeController::class, 'logout'])->name('logout');
    (HomeController по идее у вас уже существует в проекте и ниче там писать внутри не надо)
    После чего всё должно заработать.

  • @molokovoodoo
    @molokovoodoo 10 місяців тому

    если вылетает ошибка Route [login] not defined.
    создать или раскомментировать Auth::routes(); в web.php
    или ошибка The GET method is not supported for route logout. Supported methods: POST. при выходе из админки
    прописываете Route::get('logout', [LoginController::class, 'logout']); так-же в web.php

  • @augcat50
    @augcat50 2 роки тому +1

    Странная история. У меня app blade php пропал куда-то. Может я его случайно удалил. Маловероятно, что у кого-то будет такая же проблема, но в любом случае, файл можно просто скопировать из другого проекта в папку views\layouts. Может это сэкономит кому-нибудь время.

    • @rinatsarmuldin2280
      @rinatsarmuldin2280 Рік тому

      сделай на гитхаб репозиторий и туда туда делай push после люого изменения комити и тогда ты можешь в случае неудачи или просто восстановить по номеру комита любое состояние)

    • @ridddlewrong
      @ridddlewrong Рік тому

      @@rinatsarmuldin2280 сказать легко но гитхабом пользоваться не умею. Ты сам где учился этому то