我正在使用 Laravel 开发一个 Web 应用程序。我现在正在做的是创建一个 FirmRequest 来进行验证。
这是我的表格请求。
use Illuminate\Foundation\Http\FormRequest;
class StoreVacancy extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => 'required',
'type' => 'required',
'complex_field' => ...need complex conditional validation based on the type field
];
}
}
如果我没有使用 FormRequest,我可以在控制器中创建验证器并设置复杂的条件验证规则,如下所示。
$v = Validator::make($data, [
//fields and rules
]);
$v->sometimes('reason', 'required|max:500', function ($input) {
return $input->games >= 100;
});
但问题是我没有在控制器中创建验证器。但我正在使用 FormRequest。如何在 FormRequest 中实现同样的效果?
您可以根据输入数据手动调整规则:
class StoreVacancy extends FormRequest
{
public function rules()
{
$reason = $this->request->get('reason'); // Get the input value
$rules = [
'title' => 'required',
'type' => 'required',
];
// Check condition to apply proper rules
if ($reason >= 100) {
$rules['complex_field'] = 'required|max:500';
}
return $rules;
}
}
它不一样有时,但它做同样的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)