Вставьте данные в конкретную таблицу, но получили ошибку в другой таблице в Lumen 5.8 - PullRequest
1 голос
/ 31 октября 2019

Попытка вставить данные в таблицу books, но возникла ошибка в таблице users. Вот ошибка

SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «id» в «предложении where» (SQL: выберите * из users, где id - нулевой предел 1)

Таблица миграции

Schema::create('books',function(Blueprint $table) {
    $table->increments('id_book');
    $table->string('title');
    $table->string('slug');
    $table->string('author');
    $table->string('isbn')->unique()->notNullable();;
    $table->text('summary');
    $table->integer('stocks');
});

Модель Books.php:

use Illuminate\Database\Eloquent\Model;

class Books extends Model
{
    protected $table = 'books';
    protected $fillable = ['title','slug','author','isbn','summary', 'stocks'];
    protected $dates = [];

    public static $rules = [
        'title'   => 'required',
        'slug'    => 'required',
        'author'  => 'required',
        'isbn'    => 'required',
        'summary' => 'required',
        'stocks'  => 'required'
    ];
}

store функция в BooksController.php

public function store(Request $request)
{
    Books::create($request->all());
    return response()->json([
        'message' => 'Successful create new product'
    ]);
}

Для информации, в таблице users нет столбца id.

Я также пробовал построитель запросов в функции store, но он возвращает ту же ошибку. Как я могу решить это? Спасибо.

1 Ответ

1 голос
/ 31 октября 2019

внутри вашего Model Books.php, добавьте это

protected $ primaryKey = 'id_book';

это переопределяет первичный ключ по умолчанию из id в id_book для модели Books, повторите то же самоедля любой другой таблицы в соответствующем файле модели.

надеюсь, это поможет

...