我在laravel中有一个动态输入文件,输入文件将根据选择下拉列表中的数据库中的数据显示。这是我的数据库
这是我所拥有的代码的解释。
当选择2下拉列表时,ajax具有id = groupid和id = lendertype:
$('#groupid').on('change', function(){
$.post('{{ URL::to('lender/dynamic') }}', {type: 'loop_attachment', id: $('#groupid').val(), key: $('#lendertype').val()}, function(e){
$('#image').html('');
$('#image').html(e);
});
});
$('#lendertype').on('change', function(){
$.post('{{ URL::to('lender/dynamic') }}', {type: 'loop_attachment', id: $('#groupid').val(), key: $('#lendertype').val()}, function(e){
$('#image').html('');
$('#image').html(e);
});
});
选择下拉列表时,输入文件将显示在此处:
<div class="row" id="image">
</div>
,这是我的控制器:
public function postDynamic(Request $request)
{
switch(Input::get('type')):
case 'loop_attachment':
$return = '';
foreach(Loop_attachment::where('groupid', Input::get('id'))->where('type2', Input::get('key'))->where('active', 1)->get() as $row)
$return .= "<div class='row'><div class='col-md-3'></div><div class='col-md-6'><center><div class='form-group'><div class='btn btn-primary'><span>Upload $row->doctype</span> <input type='file' style='margin-bottom:1px;' class='form-control upload' name='image[]' id='image-$row->doctype'></div></div></center></div><div class='col-md-3'></div></div>";
return $return;
break;
endswitch;
}
目前没有错误或问题。 我的问题是,如果要求列为1,如何使输入文件成为必需? 请帮我解释一下代码。
我希望我的解释易于理解。提前谢谢。
答案 0 :(得分:0)
在你的foreach中你可以写成:
foreach(Loop_attachment::where('groupid', Input::get('id'))->where('type2', Input::get('key'))->where('active', 1)->get() as $row) {
$required = $row->required ? 'required' : '';
$return .= "<div class='row'><div class='col-md-3'></div><div class='col-md-6'><center><div class='form-group'><div class='btn btn-primary'><span>Upload $row->doctype</span> <input type='file' $required style='margin-bottom:1px;' class='form-control upload' name='image[]' id='image-$row->doctype'></div></div></center></div><div class='col-md-3'></div></div>";
}
答案 1 :(得分:0)
如果要自定义验证规则执行的查询,可以使用Rule类来流畅地定义规则。您还可以将验证规则指定为数组,而不是使用|
字符来分隔它们:
use Illuminate\Validation\Rule;
Validator::make($request, [
'input_field_name' => [
Rule::exists('table_name')->where(function ($query) {
$query->where('required', 1);
}),
],
]);
要了解有关Laravel验证的更多信息,请访问:https://laravel.com/docs/5.3/validation#rule-exists