Метод Laravel FirstOrCreate вернул столбец не найден
Я пытаюсь проверить, существуют ли данные в таблице перед сохранением. Я могу сохранить в таблицу
public function read($book_id)
{
MyBook::create([
'book_id' => $id,
'user_id' => Auth::id()
]);
$readBooks = Book::where('id', $book_id)->get()->first();
return view('read')->with('data', $readBooks);
}
Но когда я попытался использовать firstOrCreate для проверки перед сохранением он вернул эту ошибку
SQLSTATE[42S22]: столбец не найден: 1054 неизвестный столбец ' 1 ' В 'где предложение ' (SQL: select * from
my_books
where (1
is null and1
is null) предел 1)
Это метод, который я использую
public function read($book_id)
{
$mybook = MyBook::firstOrCreate([
['book_id' => $book_id],
['user_id' => Auth::id()]
]);
$readBooks = Book::where('id', $book_id)->get()->first();
return view('read')->with('data', $readBooks);
}
Моя my_book
таблицы my_book
public function up()
{
Schema::create('my_books', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('book_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->timestamps();
});
}
Я не знаю, что я делаю неправильно, я надеюсь, что смогу найти помощь здесь.Спасибо.
Ответы - Метод Laravel FirstOrCreate вернул столбец не найден / Laravel FirstOrCreate Method returned Column not found


15.12.2019 10:49:29
Вы передаете один массив массивов в качестве первого аргумента firstOrCreate
. Он принимает ассоциативные массивы для Аргументов.
$mybook = MyBook::firstOrCreate(
['book_id' => $book_id],
['user_id' => Auth::id()]
);
Аргументы 1 и 2 являются ассоциативными массивами.
Ларавель 6.x Docs-Eloquent-другие методы создания firstOrCreate