Я пытаюсь проверить связь между моделями Book и Rating.Пользователь должен иметь возможность оценивать книги, если они вошли в приложение.По какой-то причине мой тест на почтальоне возвращает ошибку ниже
SQLSTATE [HY000]: общая ошибка: 1364 Поле 'rating' не имеет значения по умолчанию (SQL: вставить в ratings
(user_id
, book_id
, updated_at
, created_at
) значения (2, 6, 2018-09-19 10:03:11, 2018-09-19 10:03:11))
Вот мой Рейтинг модели
class Rating extends Model
{
protected $fillable = ['user_id', 'book_id', 'rating'];
/**
* Rating/Book
* A rating belongs to a book
*/
public function book()
{
return $this->belongsTo(Book::class);
}
}
Книжная модель
class Book extends Model
{
protected $fillable = ['user_id', 'title', 'author'];
/**
* Book/User relationship
* A book belongs to only one user
*/
public function user()
{
return $this->belongsTo(User::class);
}
/**
* Book/Rating relationship
* A book has many ratings
*/
public function ratings()
{
return $this->hasMany(Rating::class);
}
}
RatingController
public function store(Request $request, Book $book)
{
// Allow only logged in users to rate books
if ($request->user()->id) {
$rating = Rating::create([
'user_id' => $request->user()->id,
'book_id' => $book->id,
],
[
'rating' => $request->rating
]);
return new Rating($rating);
} else {
return response()->json(['error', 'Login to rate this book.'], 403);
}
}
Я, очевидно, не могу найти, в чем заключается проблема или как ее исправить, и мне нужны опытные глаза и руководство.