- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 chosen像这里一样在多选中转换一个简单的选择...
<div class="form-group">
{!! Form::label('media_formats', trans('medias::messages.valid_formats'), ['class' => 'control-label']) !!}
{!! Form::select('media_formats[]', $media_formats, null, ['class' => 'form-control', 'id' => 'media_formats', 'multiple', 'data-chosen']) !!}
</div>
尝试使用 JsValidator 验证是否已选择某些 media_format 元素包...
{!! JsValidator::formRequest('Maravel\Media\Http\Requests\Admin\MediaResourceCreateRequest', '#create-edit-form' ) !!}
最后,在 Request 类中使用以下规则...
public function rules()
{
return [
...
'media_formats' => 'required',
];
}
Laravel 验证错误包返回媒体格式错误,但它没有在任何地方打印。为什么?它与 chosen 隐藏 select 元素的事实有关吗?我试过了……
{!! JsValidator::formRequest('Maravel\Media\Http\Requests\Admin\MediaResourceCreateRequest', '#create-edit-form' )->ignore('') !!}
没有成功。或者它与字段名称是 media_formats[] 而不是 media_formats 这一事实有关?
最佳答案
最后答案在我怀疑的两个问题中。做...
{!! JsValidator::formRequest('Maravel\Media\Http\Requests\Admin\MediaResourceCreateRequest', '#create-edit-form' )->ignore('') !!}
...如果我这样做...
public function rules()
{
return [
...
'media_formats[]' => 'required',
];
}
打印错误消息是因为 jquery validate 查找名称为“media_formats[]”(带方括号)的输入。但是,Laravel 验证不会以这种方式工作,并且需要不带括号的字段名称。
所以,我想出了一个解决方法来让所有工作正常进行。如果在我的请求中
public function rules()
{
return [
...
'media_formats' => 'required|array',
];
}
我更改了 JsValidator 中使用的 View ,并在设置规则参数之前添加了这些行...
<?php
foreach($validator['rules'] as $i=>$rule){
foreach($rule as $j=>$rule_type){
foreach($rule_type as $k=>$rule_option){
if($rule_option[0] == "Array") {
$validator['rules'][$i."[]"] = $validator['rules'][$i];
unset($validator['rules'][$i]);
}
}
}
};
?>
rules: <?php echo json_encode($validator['rules']); ?>
我能够更改规则数组并将“[]”连接到验证为数组的字段,以便 jquery validate 可以找到应该出现错误的元素。
JsValidator 使用的 View 可以在 JsValidator 配置文件中更改。
return array(
/*
* Default view used to render Javascript validation code
*/
'view' => 'jsvalidation::custom_bootstrap',
关于php - 如何在 Laravel 5 中使用 JsValidator 验证选定的多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114687/
我有一个 js 文件夹,我想使用 gulp 处理它。但是,当存在语法错误时,gulp trace 的输出不会指定出现错误的文件。 现在我的 gulpfile 看起来像这样: var gulp = re
我正在使用 laravel-jsValidation,https://github.com/proengsoft/laravel-jsvalidation我的问题是只使用了我的规则列表中的第一条规则。
我使用 proengsoft/laravel-jsvalidation结合自定义 FormRequest 和我通过服务提供商中的 Validator::extend(...) 定义的自定义验证规则。这
我正在使用 proengsoft/laravel-jsvalidation为了验证我的自定义表单请求,但它对我不起作用,它给出了 ReferenceError: jQuery is not defin
我正在使用 chosen像这里一样在多选中转换一个简单的选择... {!! Form::label('media_formats', trans('medias::messages.valid_fo
您好,我正在尝试验证数组输入并选择如下: {!!Form::select('mmscod_id[]',['' =
我是一名优秀的程序员,十分优秀!