Laravel 表单验证:自定义规则
在Laravel中,可以在控制器或模型中定义自定义验证规则。以下是一个简单的例子,展示了如何在控制器中定义一个自定义验证规则:
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class YourController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'your_field' => [
'required',
function ($attribute, $value, $fail) {
if (!your_custom_rule($value)) {
$fail($attribute.' does not match your custom rule.');
}
},
],
]);
if ($validator->fails()) {
return redirect('your-route')
->withErrors($validator)
->withInput();
}
// 逻辑处理
}
}
function your_custom_rule($value)
{
// 这里写下你的自定义逻辑
return $value === 'expected_value'; // 示例逻辑,根据需要修改
}
在这个例子中,your_custom_rule
函数是你的自定义验证逻辑。你可以根据需要替换为任何复杂的逻辑。在 $validator->make
方法中,你可以使用闭包来定义自定义验证规则,使用 $fail
回调来失败验证并返回错误消息。
评论已关闭