我试图让一次借出两本书成为可能,但我的问题是只有一个值被转发。表格如下所示:
在 View 中我尝试将该字段重命名为“serial number2”,因为我认为他只是因为名称相同而忽略了第二个序列号。
这是我的观点:
<div class="card">
<div class="card-header">{{ __('Lend a book') }}</div>
<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">{{ __('Please scan the Serialnumber of the book') }}</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 @if (Session::has('autofocus')) autofocus @endif>
@if ($errors->any())
<div class="alert alert-danger">The book is not in stock.
<ul>
</ul>
</div>
@endif
</div>
</div>
<div class="form-group row">
<label for="serialnumber" class="col-md-4 col-form-label text-md-right">{{ __('') }}</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 @if (Session::has('autofocus')) autofocus @endif>
@if ($errors->any())
<div class="alert alert-danger">The book is not in stock..
<ul>
</ul>
</div>
@endif
</div>
</div>
<div class="form-group row">
<label for="comment" class="col-md-4 col-form-label text-md-right">{{ __('comment') }}</label>
<div class="col-md-6">
<!-- <input id="ma_id" type="text" class="form-control{{ $errors->has('ma_id') ? ' is-invalid' : '' }}" value="{{ old('ma_id') }}" required> -->
<input id="comment" type="text-field" class="form-control" name="comment" placeholder="Test">
@if ($errors->has('comment'))
<span class="invalid-feedback">
<strong>{{ $errors->first('comment') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row">
<label for="ma_id" class="col-md-4 col-form-label text-md-right">{{ __('scan membercard to identify yourself') }}</label>
<div class="col-md-6">
<!-- <input id="ma_id" type="text" class="form-control{{ $errors->has('ma_id') ? ' is-invalid' : '' }}" value="{{ old('ma_id') }}" required> -->
<input id="ma_id" type="password" class="form-control" name="ma_id" required>
@if ($errors->has('ma_id'))
<span class="invalid-feedback">
<strong>{{ $errors->first('ma_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>
</div>
</div>
</div>
</div>
@endsection
这是我的 Controller :
public function store(bookRequest $request)
{
//if( !book::find($request->get('serialnumber'))->exists() ) {
$this->middleware('guest');
request()->validate([
'serialnumber' => 'required',
'serialnumber' => 'required',
'ma_id' => 'required'
]);
book::create($request->all());
return redirect()->route('book.index');
}
没有错误,但问题是他如上所述只将一个序列号写入数据库,而完全忽略了进入第二个字段的另一个序列号。我的问题是我必须调整什么才能将具有相同数据的第二个序列号写入数据库。
最佳答案
同一表单中不能有两个具有相同名称(例如serialnumber
)的项目,否则只会处理一个值。请检查浏览器中的检查工具。如果您需要具有相同“名称”的多个输入,请将 []
附加到名称(例如 name=serialnumber[]
)。
更多信息请访问 HTML 5 spec
另一方面,您有多个具有相同 ID 的项目。这是另一个需要在某个时候解决的问题。
将数据放入 Controller 后,您将必须相应地生成插入数据
$requestData = $request->validated();
$data = [
[
'serialnumber' => $requestData['serialnumber'][0],
'comment' => $requestData['comment'],
'ma_id' => $requestData['ma_id']
],
[
'serialnumber' => $requestData['serialnumber'][1],
'comment' => $requestData['comment'],
'ma_id' => $requestData['ma_id']
]
];
Book::insert($data);
关于html - 如何一次插入插入两个序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53335080/