如何发送值进行拉拉维尔验证?
$data = explode(",", trim(Input::get('Vehicle_Data'))); //exploding data
$rule = array(
$data[0] => 'required',
$data[1] => 'required',
$data[2] => 'required|email|unique:users'
) ;
$validator = Validator::make($data,$rule);
if ($validator->fails())
{
$messages = $validator->messages();
return $messages;
}
else
{
return 'ok'
}
我只想检查 $data[0] 是否是必需的并且应该是唯一的
当它工作得很好
'email' => 'required|email|unique:users'
但当它不起作用时
$data[2] => 'required|email|unique:users'
但是我不想将 $data[2] 声明到另一个变量中并执行此操作如何在不将数据 [2] 分配给另一个变量的情况下执行此操作
当我验证它正在返回时
Object {32: Array[1], 43: Array[1]}
在控制台中
按照你尝试的方式去做可能不是最好的主意,但以下是你实现你想要的方式:
$data = explode(",", trim(Input::get('Vehicle_Data'))); //exploding data
$rules = array(
'required',
'required',
'required|email|unique:users,email'
);
$data
将是带有数字键的简单数组,因此$rules
数组应该相同并且可以工作。
编辑:根据评论,Validator::make
能够 1 设置自定义消息,2 设置自定义属性。所以对你来说,后者是要走的路:
$messages = []; // no need to specify that, unless you'd like
$attributes = ['id', 'name', 'email', ...]; // use your actual fields here
$validator = Validator::make($data, $rules, $messages, $attributes);
// then the messages will use $attributes array, so will show:
'The name has already been taken'
'The email field is required'
// instead of:
'The 1 has already been taken'
'The 2 field is required'