Я уже задавал этот вопрос, но в этот раз есть несколько других вещей.В прошлый раз проблема была решена довольно хорошо, так что теперь мне просто нужна рука, чтобы сказать мне, как изменить код, чтобы он работал правильно.
Я изменил то, что я реализовал способ успешного предоставления большегозатем одна книга сразу.Итак, теперь у меня есть массив, который отлично работает.
Так что это мой взгляд, представьте этот код 3 раза по одному для каждой книги, которую вы хотите одолжить:
<div class="form-group row">
<label for="serialnumber" class="col-md-4 col-form-label text-md-right">{{ __('Gerät 1 (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 @if (Session::has('autofocus')) autofocus @endif>
@if ($errors->any())
<div class="alert alert-danger">The book with this serialnumber is already lend by antoher person
<ul>
</ul>
</div>
@endif
</div>
</div>
Это мой код контроллера сейчас:
public function store(BookRequest $request)
{
//if( !Book::find($request->get('serialnumber'))->exists() ) {
$this->middleware('guest');
request()->validate([
'serialnumber' => 'required',
'ma_id' => 'required'
]);
$requestData = $request->all();
$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'],
],
[
'serialnumber' => $requestData['serialnumber'][2],
'comment' => $requestData['comment'],
'ma_id' => $requestData['ma_id'],
]
];
Book::insert($data);
return redirect()->route('borrow.index')
->with('success','Successfully lend the book');
}
И последняя моя страница Request.php:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BookRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'serialnumber[0]' => 'required|unique:borrowed,serialnumber,null',
'serialnumber[1]' => 'required|unique:borrowed,serialnumber,null',
'serialnumber[2]' => 'required|unique:borrowed,serialnumber,null',
'ma_id' => 'required',
];
}
public function messages()
{
return [
'serialnumber' => 'Seems like you have added the same book more than once!',
];
}
}
И это мое сообщение об ошибке, которое я получил после того, как попытался одолжить книгу, которую уже одолжилдругой человек.До того, как я реализовал массив, этот код работал отлично.Другой вопрос, который у меня есть, - как я могу реализовать способ, который показывает сообщение об ошибке, которое гласит: «Извините, но эта книга в настоящее время отсутствует в нашей базе данных, пожалуйста, нажмите кнопку информации и получите некоторую административную помощь», так что в основном появляется сообщение об ошибке, когдаКнига отсутствует в нашей базе данных, у нас много книг, поэтому мы можем забыть отсканировать одну.Любая помощь приветствуется !!
РЕДАКТИРОВАТЬ: Забыли сообщение об ошибке
htmlspecialchars () ожидает, что параметр 1 будет строка, массив задан