Php 若现场需要,则为Laravel,don';是否为每个值返回错误?
我有一张很大的登记表Php 若现场需要,则为Laravel,don';是否为每个值返回错误?,php,validation,laravel,Php,Validation,Laravel,我有一张很大的登记表 'username_c' => 'required|unique:contacts_cstm', 'password' => 'required|min:6', 'email' => 'required|email', 'password_repeat' => 'required|same:password', 'first_name' => 'required', 'l
'username_c' => 'required|unique:contacts_cstm',
'password' => 'required|min:6',
'email' => 'required|email',
'password_repeat' => 'required|same:password',
'first_name' => 'required',
'last_name' => 'required',
'rsa' => 'required',
等等(另外15个字段)
问题是,如果提交表单时未输入任何内容,则会返回大约20个不同的错误(应该是这样的)
除此之外,如果没有输入任何必填字段,则最好回吐一个错误,说“所有字段都是必填的”或类似的内容
我读过拉威尔的文件。在这上面,我什么也没发现。有什么简单的方法可以做到这一点吗?假设
$rules
数组中的所有字段都是必需的,您应该能够做一些简单的事情,比如数组过滤器($required\u fields\u input)
,将长度与$required\u规则的长度进行比较,然后用一条错误消息/警报重定向回
请参见下面的代码示例。我尽量让它简单/评论得足够多
根本没有测试。。。但是理论上!…;)
class-YourController{
// ...
公共函数postFormData()
{
$rules=[
// ...
'名字'=>'必需',
'姓氏'=>'必填',
“rsa”=>“必需”
// ...
];
//假设$rules中的所有字段都是“必需的”
$required\u fields=数组\u键($rules);
$required\u fields\u input=input::only($required\u fields);
//清除所有空/空字段
$input\U not\U empty=数组过滤器($required\U fields\U input);
if(计数($input_not_empty)withMessage($fill_them_all_in_message);
}
/**
*所有必填字段都存在
*像往常一样继续。。
*…验证/响应/等等。。。
*/
}
//...
}
我想这差不多涵盖了你主要关心的
a、 )避免显示“需要XYZ字段”的15条消息
b、 )仍然允许其余的验证/处理照常进行
希望有帮助 尽管这基本上只是替换默认的错误消息,但请尝试这样做。
class YourController {
// ...
public function postFormData()
{
$rules = [
// ...
'first_name' => 'required',
'last_name' => 'required',
'rsa' => 'required'
// ...
];
// Assuming all fields in $rules are "required"
$required_fields = array_keys($rules);
$required_fields_input = Input::only($required_fields);
// Clean out all empty/null fields
$input_not_empty = array_filter($required_fields_input);
if (count($input_not_empty) < count($required_fields))
{
$fill_them_all_in_message = "Please fill in all required fields.";
return Redirect::back()->withMessage($fill_them_all_in_message);
}
/**
* All required fields present
* Continue as usual ..
* .. Validate/Respond/etc...
*/
}
//...
}