Как показать страницу редактирования сообщения пользователю, который является автором?

Я хочу предоставить доступ к странице редактирования только авторам сообщений.

PostController:

public function edit(Vocabulary $vocabulary)
{
    if ($vocabulary->user_id != Auth::id()) {
        return redirect()
            ->route('home')
            ->with('danger', 'You cannot edit another user's vocabulary.');
    }

    // return view...
}

Итак, мой вопрос - как сжать эту часть кода. Могу ли я использовать меньше строк кода для этого (потому что я должен писать такие блоки множеством методов)?

// I'm checking current User's id and author's id in the post..
if ($vocabulary->user_id != Auth::id()) { 
    return redirect()
        ->route('home')
        ->with('danger', "You cannot edit another user's vocabulary.");
}

Ознакомьтесь с Политикой laravel.com/docs/5.6/authorization

linktoahref 30.03.2018 19:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
88
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используя промежуточное ПО на странице редактирования и добавьте его в свой маршрут, и если пользователь авторизации является автором, то передайте его, иначе покажите ошибку

public function checkAuthor($Request , closure $next)
{
  If( CONDITION FOR CHECKING AUTHOR) {
        return response(error message)
    }
    return $next($Request)
}

Я думаю это поможет

Вы «догадываетесь», что это поможет?

TylerH 19.04.2021 21:45
Ответ принят как подходящий

Я настоятельно рекомендую использовать для этого классы Laravel Политика. Просто вам просто нужно создать класс политики для каждой модели, к которой вы хотите предоставить доступ. Таким образом, в классе политики вы можете реализовать разные алгоритмы для каждого действия, такие как Обновить, Удалить и т. д. Вы можете найти более подробную информацию по ссылке ниже:

Написание политик

Да, я все перепробовал, но получил ошибку This action is unauthorized. .. Итак, теперь я не знаю, как это правильно сделать ..

entithat 01.04.2018 12:56

Хорошо, поэтому он выдает исключение 403

Tohid Dadashnezhad 01.04.2018 12:57

Вы можете создать файл лезвия представления в каталоге просмотров / ошибок с именем 403.blade.php.

Tohid Dadashnezhad 01.04.2018 12:58

В этом файле просмотра вы можете показать соответствующее сообщение для всех несанкционированных действий.

Tohid Dadashnezhad 01.04.2018 12:59

Другие вопросы по теме