我有各种各样的东西......
$foo = [];
$foo['stuff']['item'][0]['title' => 'flying_lotus'];
$foo['stuff']['item'][1]['title' => 'various_cheeses'];
$foo['stuff']['item'][2]['title' => 'the_career_of_vanilla_ice'];
$foo['stuff']['item'][3]['title' => 'welsh_cats'];
Run Code Online (Sandbox Code Playgroud)
如何使用Laravel 4中的Validator方法验证'title'键?
这是我到目前为止所拥有的......
$validator = Validator::make($foo, ['stuff.item.???.title' => 'required']);
Run Code Online (Sandbox Code Playgroud)
我完全被索引数组搞砸了.任何帮助都会很棒.
我正在使用验证器来验证请求参数并向公共 API 的用户返回有用的消息。如果验证器失败,我返回一个视图:
if( $validator->fails() ){
$data = ['errors' => $validator->errors()->messages() ];
return response()->view('errors.412', $data, 412)
->header("HTTP/1.0 412 Precondition Failed", null);
} else {
...
}
Run Code Online (Sandbox Code Playgroud)
风景...
<ul>
@foreach( $errors as $field )
@foreach( $field as $error )
<li>{{ $error }}</li>
@endforeach
@endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)
因为这些消息将由开发人员使用,所以我希望它们具有技术性和具体性。因此,Laravel 自动从我的参数键中删除空格真的很烦人。
对于消息:
'The :attribute field is required.'
Laravel 返回:
车辆名称字段为必填项。
...但我想要更准确的:
车辆名称字段是必需的。
我发现的唯一修复是将以下行添加到/resources/lang/en/validation.php:
'attributes' => [
'vehicle_name' => 'vehicle_name'
],
Run Code Online (Sandbox Code Playgroud)
但这只是感觉倒退了,我必须在语言翻译文件中提供一堆相同的密钥对值,只是为了指示框架撤消不需要的行为。
有没有更好的办法?