Это видео недоступно.
Сожалеем об этом.

Laravel Policies. Как организованно проверять права пользователей

Поделиться
HTML-код
  • Опубликовано: 16 апр 2021
  • В этом уроке мы разберемся с организацией политик в Laravel. При помощи политик вы можете группировать логику проверки прав в отдельные классы, направленные на работу с отдельным интерфейсом или моделью.
    ✅ Instagram: / lectoria.pro
    ✅ VK: lectoria
    ✅ Facebook: lectori...
    ✅ Сайт проекта Lectoria: lectoria.pro
    🖥 Обучение веб-разработке Lectoria: / @lectoria
    🖥 Обучение разработке на MODX Revolution: / openmodx

Комментарии • 15

  • @user-wg5mi8xs9j
    @user-wg5mi8xs9j 3 года назад +7

    Канал - открытие!!Спасибо

  • @user-lr4yq1xy4f
    @user-lr4yq1xy4f 3 года назад +2

    ЛУЧШИЙ!

  • @coderbackend9695
    @coderbackend9695 2 года назад

    Отличный канал. Спасибо огромное автору!!!

  • @user-dc6md9wh8y
    @user-dc6md9wh8y 5 месяцев назад

    Подскажите пожалуйста, всё делаю как по уроку, у меня на компьютере проект работает с "Policies", но когда выкладываю на хостинг получаю ошибку "This action is unauthorized."

  • @progtime2000
    @progtime2000 2 года назад

    Отличное видео))) Автор будут ли еще видео по Laravel?

  • @alexandr-v
    @alexandr-v 3 года назад

    Интересно было бы еще узнать про guard.

  • @codeurient
    @codeurient 2 года назад

    а можно урок про то как работать с базой данных через паттерн репозиторий ?
    иииииииииии в прцессе работы с данными как использовать атрибут pivot для моделей и включить его в запросы по поиску в RestApi ?

  • @palach_666
    @palach_666 3 года назад +1

    Немного не понял про authorizeResource, просто вы не показали пример работы с ним, а только инициализацию.
    UPD: чуть позже разобрался прочитал документацию laravel))
    Controller Method Policy Method
    index viewAny
    show view
    create create
    store create
    edit update
    update update
    destroy delete

  • @dashkablogger
    @dashkablogger 3 года назад

    Не просто так в документации примеры с моделями. Сообществом laravel не принято выносить логику в контроллеры

    • @lectoria
      @lectoria  3 года назад +2

      Я думаю, это не только в сообществе Laravel - это хорошая практика. Я обычно веду разработку таким образом, что когда нужно быстро получить результат, я могу запихнуть логику и в контроллер. Затем, когда результат получен, отработан и все ок, я начинаю выносить логику из контроллера в отдельный класс-сервис, который может быть повторно использован и в других контроллерах и в консольных командах и в очередях и событиях и так далее.

    • @nt2548
      @nt2548 2 года назад

      @@lectoria Здравствуйте. Хотелеось бы такое видео от Вас.Спасибо за Ваш труд!

  • @EvgenOl
    @EvgenOl 2 года назад

    Чёта я так и не понял зачем нам эти политики, если они делают всё то же самое что гейты, только их сложнее писать...

    • @lectoria
      @lectoria  2 года назад

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

  • @VTolstov
    @VTolstov 2 года назад

    На 18:12 abort получает два параметра: код ошибки и сообщение. И вроде как берет их из Response::deny('сообщение', код). Но при обновлении страницы у вас код подставляется верно, а сообщение остается прежним "Not found". Я сделал свой шаблон для ошибки 404.blade.php и там прописал getStatusCode, getMessage. Но правильно ли я сделал? Или все таки abort как то может вывести правильное сообщение из $response?

    • @lectoria
      @lectoria  2 года назад +1

      Внешний вид страницы с ошибкой 404 определяется конечным blade-шаблоном. И конкретно в шаблоне, отвечающем за ошибку 404 стоит конкретное сообщение Not found не зависимо от того, какое сообщение передано в Exception. Поэтому, если стоит цель сделать вывод кастомного сообщения, то необходимо взять вот этот файл:
      vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php
      Сделать его копию в каталоге resources/views/errors/ и заменить сообщение Not Found на $exception->getMessage()