创建新产品时出现此错误。这是功能:
public function createProduct(Request $request) {
$product = Product::create($request->all());
$product->title = strip_tags($request->title);
$product->description = strip_tags($request->description);
$product->price = strip_tags($request->price);
$product->category_id = 1;
$product->save();
return redirect('/');
}
'插入products
(title
,description
,price
,image
,updated_at
,created_at
)值( ?,?,?,?,?,?)
但为什么我在这些值之间看不到category_id
?我还在Product.php中填写了category_id
protected $fillable = [
'slug', 'title', 'description', 'stock', 'price', 'image',
'category_id'
];
我还在category
表中创建了categories
,ID为1
有人可以帮忙吗?
答案 0 :(得分:0)
您的问题是在设置category_id之前创建并保存模型。您的请求数据不得包含类别ID。
$product = Product::create($request->all());
这将尝试使用您传递给它的数据将行(创建+保存模型)插入数据库。
所以当你点击时:
$product->title = strip_tags($request->title);
您的插入查询已发送。为了便于阅读,不要混淆创建或制作setter。要么:
$product = Product::create([
'category_id' => 1,
...
]);
或者做:
$product = new Product();
$product->category_id = 1;
...
$product->save();