1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| <?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule;
class StoreUserRequest extends FormRequest { public function authorize(): bool { return true; }
public function rules(): array { return [ 'name' => ['required', 'string', 'max:255'], 'email' => [ 'required', 'email', Rule::unique('users')->ignore($this->user?->id), ], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'avatar' => ['nullable', 'image', 'max:2048'], 'role' => ['required', Rule::in(['admin', 'editor', 'user'])], 'preferences' => ['nullable', 'array'], 'preferences.theme' => ['nullable', Rule::in(['light', 'dark'])], 'preferences.language' => ['nullable', 'string', 'size:2'], ]; }
public function messages(): array { return [ 'name.required' => '请输入用户名', 'email.unique' => '该邮箱已被使用', 'password.min' => '密码至少需要 :min 个字符', ]; }
public function attributes(): array { return [ 'name' => '用户名', 'email' => '邮箱地址', 'password' => '密码', ]; }
protected function prepareForValidation(): void { $this->merge([ 'email' => strtolower($this->email), 'name' => trim($this->name), ]); }
protected function passedValidation(): void { $this->replace([ 'password' => bcrypt($this->password), ]); } }
|