约 2 分钟阅读
表单验证 (Validation)
Laravel 提供了数十种开箱即用的验证规则,并在验证失败时自动处理重定向和错误信息闪存。
在控制器中快速验证
use Illuminate\Http\Request;
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required|min:10',
'publish_at' => 'nullable|date|after:today',
]);
// 验证通过,获取经过滤的数组
$post = Post::create($validated);
return redirect('/posts')->with('status', '文章创建成功!');
}
使用表单请求类 (Form Request)
对于复杂表单,推荐创建独立的 Form Request 类以保持控制器精简:
php artisan make:request StorePostRequest
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StorePostRequest extends FormRequest
{
public function authorize(): bool
{
return true; // 权限判定
}
public function rules(): array
{
return [
'title' => ['required', 'string', 'max:255'],
'content' => ['required', 'string'],
'tags' => ['array'],
];
}
}