#php #laravel
Вопрос:
Я буду добавлять данные в базу данных, но у меня есть ошибка, когда я пишу код для добавления данных в массив, и ошибка, подобная этой,
синтаксическая ошибка, неожиданное «=», ожидание «]»
Я использую следующий код:
Контроллер
<?php
namespace AppHttpControllers;
use DateTime;
use IlluminateHttpRequest;
use IlluminateSupportFacadesDB;
class BooksController extends Controller
{
public function addBooks(Request $request)
{
$data = array([
'name' = $request->input('bookName');
'year' = $request->input('tahunT');
'author' = $request->input('author');
'summary' = $request->input('Summary');
'publisher' = $request->input('publishers');
'pageCount' = $request->input('pageCount');
'readPage' = $request->input('ReadPage');
'finished' = $pageCount == $readPage ? true : false;
'reading' = $readPage > 0 ? true : false;
'insertedAt' = new DateTime();
'updatedAt' = $insertedAt;]);
DB::table('books')->insert($data);
}
}
Вот такой вид
<form class="row g-3" action="{{ route('addbook') }}" method="post">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
<div class="col-md-6">
<label for="bookName" class="form-label">Nama Buku:</label>
<input type="text" class="form-control" name="bookName" id="bookName">
</div>
<div class="col-md-3">
<label for="tahunT" class="form-label">Tahun Terbit : </label>
<input type="number" class="form-control" name="tahunT" id="tahunT">
</div>
<div class="col-md-3">
<label for="author" class="form-label">Author : </label>
<input type="text" class="form-control" name="author" id="author">
</div>
<div class="col-md-6">
<label for="publishers" class="form-label">Publisher : </label>
<input type="text" class="form-control" name="publishers" id="publishers" >
</div>
<div class="col-md-3">
<label for="pageCount" class="form-label">Page Count :</label>
<input type="number" class="form-control" name= "pageCount" id="pageCount">
</div>
<div class="col-md-3">
<label for="ReadPage" class="form-label">Read Page :</label>
<input type="number" class="form-control" name="ReadPage" id="ReadPage">
</div>
<div class="col-12">
<label for="Summary" class="form-label">Summary :</label>
<textarea class="form-control" name= "Summary" id="Summary"></textarea>
<br><br>
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary">Add Book</button>
</div>
</form>
Вот маршрут
Route::post('/addbook', 'BooksController@addBooks')->name('addbook');
У вас есть какое-нибудь решение этой проблемы? Я также пытался:
'name' => $request->bookName
но это также приводит к ошибке.
Ответ №1:
Похоже, вы смешали старый синтаксис массива array()
и новый синтаксис []
. Имейте в виду, что каждая запись массива должна заканчиваться на ,
» а «вместо ;
» а».
Вы могли бы использовать следующее:
$data = [
'name'=> $request->input('bookName'),
'year'=> $request->input('tahunT'),
'author'=> $request->input('author'),
'summary'=> $request->input('Summary'),
'publisher'=> $request->input('publishers'),
'pageCount' => $request->input('pageCount'),
'readPage'=> $request->input('ReadPage'),
'finished' => $pageCount == $readPage ? true : false,
'reading' => $readPage > 0 ? true : false,
'insertedAt'=> new DateTime(),
'updatedAt'=> $insertedAt
];
DB::table('books')->insert($data);