Внутри Laravel вы можете легко определить способности, а затем подключиться к ним позже с запросом пользователя о выполнении разных действий:
$gate->define('update-post', function ($user, $post) {
return $user->id === $post->user_id;
});
Но почти все мои определенные способности имеют эту часть $user->id === $model->user_id
. Мне это не нравится, так как это повторяющееся условие, над которым я думаю, может быть более абстрактным.
Большинство моих определенных способностей соответствуют обновлению/удалению записей, поэтому было бы лучше, если бы я мог сделать глобальное условие применимым ко всем из них или если может быть определение групповой способности, которое похоже на то, что мы делаем в маршрутизации.
Есть ли какое-нибудь обходное решение? Мне очень нравится DRY.