【问题标题】:Sending the same value multiple times多次发送相同的值
【发布时间】:2019-03-29 18:12:40
【问题描述】:

我想用一张表格保存多个序列号。这意味着作为示例,您有 4 个输入字段,您可以在其中扫描这些序列号 1 个字段是必需的,其他字段不必填写,如下所示:

public function store(Request $request)
{
    $this->middleware('guest');

    request()->validate([
      'serialnumber' => 'required',
      'serialnumber',

      'member_id' => 'required'
    ]);

    Ausleih::create($request->all());


    return redirect()->route('borrow.index');

}

接下来是输入来自的视图:

 <div class="card-body">
    <form method="POST" action="{{ route('borrow.store') }}">
        @csrf

        <div class="form-group row">
            <label for="serialnumber" class="col-md-4 col-form-label text-md-right">{{ __('Scan serialnumber') }}</label>

            <div class="col-md-6">
                <input id="serialnumber" type="text" class="form-control{{ $errors->has('serialnumber') ? ' is-invalid' : '' }}" name="serialnumber" value="{{ old('serialnumber') }}" required autofocus>
                <br>
                <input id="serialnumber" type="text" class="form-control{{ $errors->has('serialnumber') ? ' is-invalid' : '' }}" name="serialnumber" value="{{ old('serialnumber') }}" autofocus>

                @if ($errors->has('serialnumber'))
                    <span class="invalid-feedback">
                        <strong>{{ $errors->first('serialnumber') }}</strong>
                    </span>
                @endif
            </div>
        </div>
        <div class="form-group row">
          <label for="member_id" class="col-md-4 col-form-label text-md-right">{{ __('Scan your member card') }}</label>
          <div class="col-md-6">

            <input id="member_id" type="password" class="form-control" name="member_id" required>


            @if ($errors->has('member_id'))
            <span class="invalid-feedback">
              <strong>{{ $errors->first('member_id') }}</strong>
            </span>
            @endif
        </div>
      </div>
      <div class="form-group row mb-0">
            <div class="col-md-6 offset-md-4">
                <button type="submit" class="btn btn-primary">
                    {{ __('send') }}
                </button>
            </div>
        </div>
    </form>
</div>

如您所见,我刚刚创建了另一个输入字段来保存多个序列号。问题是我只得到一个值,而不是两者都可以帮助我解决这个问题吗?我需要改变什么?

【问题讨论】:

  • id 在同一个文档中必须是唯一的
  • 正如 FYI 一样,Chrome 已开始将多个同名的 id 分类为控制台中的错误,因此您也可以查看它们。

标签: php html laravel laravel-5 laravel-5.2


【解决方案1】:

首先id属性在同一个文档中必须是唯一的,所以去掉重复的或者用通用类替换。

您需要将名称用作name='serialnumber[]' 之类的数组,然后在您的store 操作中循环它们,例如:

foreach($request->serialnumber as $serialnumber){
   //Use every $serialnumber as you want here
}

您的验证可能是这样的:

$request->validate([
    'serialnumber' => 'required|array|min:1',
    'member_id'    => 'required'
});

所以序列名应该是一个至少包含一项的数组。

【讨论】:

  • foreach 中的内容类似于 foreach($request->serialnumber as $serialnumber){ 'serialnumber' => 'required' }?
  • 检查我的更新...并让我们知道您的表结构在数据库中的样子
  • @Jaexz 获取有关在 Laravel 中验证数组的信息:laravel.com/docs/5.7/validation#validating-arrays
  • 我的意思是我在 foreach 循环中放了什么?我不是 laravel 中最好的,但我尽我最大的努力学习它我真的很感谢每一个帮助!感谢您的所有回复!
  • 让我们知道你的表结构在数据库中的样子,我们必须知道你想如何以及在哪里存储这些序列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2011-10-06
相关资源
最近更新 更多