根据laravel中的数据库生成所需的输入文件

时间:2016-10-31 03:38:57

标签: php mysql ajax laravel laravel-5

我在laravel中有一个动态输入文件,输入文件将根据选择下拉列表中的数据库中的数据显示。这是我的数据库loop_attachment table

这是我所拥有的代码的解释。

当选择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,如何使输入文件成为必需? 请帮我解释一下代码。

我希望我的解释易于理解。提前谢谢。

2 个答案:

答案 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