💨
Laravel Filamentでユーザー詳細画面のパスワード入力フィールドを作る
こんな感じにする
ここでも書いたけど、こっちでも
Components\TextInput::make('password')->label('パスワード')
//オートコンプリートを無効にする
->autocomplete(false)
//パスワードの入力として登録する
->password()
//保存時にハッシュ加されたパスワードを送る
->dehydrateStateUsing(fn (string $state): string => Hash::make($state))
//パスワードの入力が無い時は何もしない
->dehydrated(fn (?string $state): bool => filled($state))
//新規作成時だけ必須
->required(fn (string $operation): bool => $operation === 'create')
//半角英数字記号それぞれ1文字以上使用し、8文字以上かどうか
->regex('/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@[-`{-~])[!-~]{8,}+\z/i')
//エラー文
->validationMessages([
'regex' => ':attributeは半角英数字記号それぞれ1文字以上使用した8文字以上で指定してください',
]),
こんな感じにエラーになる。
Discussion