gpt4 book ai didi

php - "SQLSTATE[HY000]: General error: 1364 Field ' user_id ' doesn' t 有默认值(SQL : insert into

转载 作者:行者123 更新时间:2023-11-29 17:16:16 24 4
gpt4 key购买 nike

我在使用 laravel 时遇到此错误。我正在尝试保存书籍数据并使用 user_id 保存其所有者用户。抱歉问题格式。

public function store(InfoValid $request)
{
$request->validated();
$user = Auth::user()->books()->create($request->except('_token'));
//dd($user ->user_id);
Book::create($request->except('_token'));
redirect("/books");
}
}

"SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into books (name, page, ISBN, price, published_at, updated_at, created_at) values)) ◀"

在我的用户类中,我有:

public function books(){
return $this->hasMany(Book::class);
}

在我的图书课上:

protected $fillable = [
"name" , "page" , "ISBN" , "price" , "published_at"
];

public function user()
{
return $this ->belongsTo(User::class);
}

在我的图书表中:

$table->unsignedInteger("user_id");

$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');

当我 dd() user_id(我已经评论过)时,它给了我 user_id 但我不知道为什么我会遇到这个错误

最佳答案

Auth::user()->books()->create($request->except('_token'));

将自动在 Book 实体中设置 user_id

但是这里

Book::create($request->except('_token'));

user_id 将不会被设置。所以laravel会尝试插入没有user_id(这是必需的)的书,MySQL会提示。但您也不需要第二行,因为这本书已经与第一行一起保存了。

关于php - "SQLSTATE[HY000]: General error: 1364 Field ' user_id ' doesn' t 有默认值(SQL : insert into,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com