Я только начал изучать Laravel 5.7, и мне стало интересно, есть ли более простой способ проверить, есть ли у конкретного пользователя права на редактирование, удаление или просмотр страницы.
Сценарий
У пользователя много компаний, и он может просматривать, редактировать и удалять их. Поэтому, если они попытаются получить доступ к названию компании (id), к которой они не принадлежат, они получат «доступ ограничен» или что-то в этом роде. Моя проблема в том, что я продолжаю повторять свой код снова и снова, и это кажется очень непродуктивным.
Пример кода :
public function edit($id)
{
// Check if the company ID exists
if(!Company::whereId($id)->first() || !Company::whereId($id)->where('user_group',Auth::user()->user_group)->first())
{
return abort(404);
}
return view('company/edit');
}
Так что в моем примере я проверяю, существует ли идентификатор компании, и если компания и группа_пользователей имеют один и тот же идентификатор. Однако мне нужно будет повторить этот код для метода «show» и любых других методов, имеющих такой же сценарий (включая другие контроллеры).
Как я могу сделать мою жизнь проще с этим? Какая лучшая практика? Пример был бы хорош.