在 Laravel 中,表单验证可以通过多种方式实现。这里将介绍两种常见的方法:使用控制器进行验证和使用表单请求类进行验证。
首先,在你的控制器中添加一个用于处理表单提交的方法。例如,我们创建一个 store
方法来处理表单提交:
use Illuminate\Http\Request;
class YourController extends Controller
{
public function store(Request $request)
{
// 验证逻辑
}
}
接下来,在 store
方法中添加表单验证逻辑。使用 $request->validate()
方法进行验证,并定义一个包含验证规则的数组作为参数:
public function store(Request $request)
{
$validatedData = $request->validate([
'field1' => 'required|max:255',
'field2' => 'required|integer|min:1',
// 更多验证规则...
]);
// 保存数据、处理业务逻辑...
}
首先,使用以下命令生成一个新的表单请求类:
php artisan make:request YourFormRequest
这将在 app/Http/Requests
目录下生成一个名为 YourFormRequest.php
的文件。
接下来,打开 YourFormRequest.php
文件,定义你的验证规则:
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class YourFormRequest extends FormRequest
{
public function authorize()
{
return true; // 根据需要判断用户是否有权进行此操作
}
public function rules()
{
return [
'field1' => 'required|max:255',
'field2' => 'required|integer|min:1',
// 更多验证规则...
];
}
}
然后,在控制器中引入表单请求类,并将其作为 store
方法的参数类型提示:
use App\Http\Requests\YourFormRequest;
class YourController extends Controller
{
public function store(YourFormRequest $request)
{
// 保存数据、处理业务逻辑...
}
}
现在,当表单提交时,Laravel 会自动对请求数据进行验证。如果验证失败,将自动重定向回表单页面,并显示错误消息。如果验证成功,将继续执行 store
方法中的代码。
注意:在视图中,你可以使用 @error
指令显示错误消息,例如:
@error('field1')
<div class="alert alert-danger">{{ $message }}</div>
@enderror