🎃

リーダー権限は1チーム1リーダーのみ登録出来るようなバリデーション【Laravel】

2022/11/13に公開約700字

Laravel AdminのLaravelでバリデーションコードを書いてみました。

Laravel Adminてなぁに👀?? → Laravelの管理画面用パッケージのことです!管理画面を使って権限を変えることが出来ます。権限によってLaravelのローカル環境の画面で使える機能を制限出来ます。

【書くコード】
リーダー権限を重複させない

【コード内容】
app/Admin/Controllers/UserController.phpにバリデーションコードを書く

$form->select('role', '権限')->options(User::$teams_view)->rules(["required",function ($attribute, $value, $fail) use ($form){
$selected_team = Team::find(request()->get('team_id'));
if (!$selected_team->validateMakeReader() && $value == User::$teams["reader"]["role"]) {$fail('1チーム1リーダーの設定のみ可能です');       }
}]);

【ポイント】
今回はユーザー権限のカスタムルールの機能が1回だけ必要でした。その為、ルールオブジェクト(Rule.php)を使わずにクロージャを使用しました。

クロージャってなぁに👀?? → https://zenn.dev/rails/scraps/441f6444c36883

Discussion

ログインするとコメントできます