跳转到主要内容
约 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'],
        ];
    }
}