Мне нужно отправить, например, 5 записей в одном запросе в одну таблицу (id_book - каждый раз отличается), поэтому мне нужно одним нажатием на кнопку создать, например, 10 записей. Этот код показывает это сообщение об ошибке: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец 'id_book.0' в 'предложении where' (SQL: выберите количество () как совокупность из connect_user_books
где id_book
. 0
= 6 * (МОЙ ТЕКСТ: 6 - ИДЕНТИФИКАТОР МОЕГО СПИСКА, КОТОРЫЙ Я ДОЛЖЕН ДОБАВИТЬ В ДАННЫЕ ЗАПИСИ) )
Мой контроллер:
public function create()
{
$books = Book::all();
return view('connectUserBook.create', compact('books'));
}
public function store(Request $request)
{
$this->validate($request, [
'id_user_select' => 'required',
'id_book' => 'required|array',
'id_book.*' => 'exists:connect_user_books',
]);
$userId = $request->input('id_user_select');
// Vytvoření
foreach ($request->input('id_book') as $book) {
$connect = new ConnectUserBook;
$connect->id_user_select = $userId;
$connect->id_book = $book;
$connect->save();
}
return redirect('/dashboard')->with('success', 'Výběr editován!');
}
Моя HTML разметка:
{{ Form::open(['action' => 'ConnectUserBookController@store', 'method' => 'POST']) }}
<div>
<label class="form-label">Vybraný výběr *</label>
<div>
<select name="id_user_select" class="form-control">
<?php
$select_id = $_GET["id"];
$select_id;
$res = mysqli_query($link, "select * from selected_books Where id = $select_id");
while($row = mysqli_fetch_array($res))
{
?>
<option value="<?php echo $row["id"]; ?>"> <?php echo $row["title"]; ?></option>
<?php
}
?>
</select>
</div>
</div>
<br>
@for ($i = 0; $i < 11; $i++)
<div>
<label class="form-label">Book {{ $i }} *</label>
<div>
<select name="id_book[]" class="form-control">
@foreach ($books as $book)
<option value="{{ $book->id_book }}">{{ $book->nazev }} - {{ $book->pocet_stranek }} stran</option>
@endforeach
</select>
</div>
</div>
@endfor
{{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
{{ Form::close() }}