【问题标题】:Make Input file required based on database in laravel根据 laravel 中的数据库制作需要的输入文件
【发布时间】:2017-03-13 04:27:58
【问题描述】:

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

这是我的代码解释。

选择 id=groupid 和 id=lendertype 的 2 个下拉菜单时的 ajax:

$('#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;       
}

目前没有错误或问题。 我的问题是,如果 required 列为 1 ,如何使输入文件成为必需? 请帮我写代码。

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

【问题讨论】:

  • 先把外面的单引号改成双引号。这里'{{ URL::to('lender/dynamic') }}'
  • 感谢您的回答,但这样做是为了什么?因为现在我所有的代码都已经可以工作了。如果 required column = 1,我需要的是代码如何制作必填字段

标签: php mysql ajax laravel laravel-5


【解决方案1】:

如果您想自定义验证规则执行的查询,您可以使用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

【讨论】:

    【解决方案2】:

    在你的 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>";
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多