我在Laravel中遇到了create()方法的问题。 每当我尝试使用此代码在数据库中创建新记录时:
$website = Website::create([
'user_id' => auth()->user()->id,
'name' => $request->name,
'url' => $request->url,
'description' => $request->description,
'subcategory_id' => $request->subcategory_id,
'user_id' => $request->subcategory_extra_id,
]);
列user_id(在数据库中)等于0,而我的id是1.当然,我的模型中有可填充变量:
protected $fillable = [
'user_id',
'name',
'url',
'description',
'subcategory_id',
];
我尝试使用常量值而不是auth() - > user() - > id但我在数据库中仍然有0作为user_id。使用save()方法解决了这个问题,但我更喜欢使用create()。
答案 0 :(得分:0)
您已在密钥中列出user_id
两次。第二次,整数是空的。
'user_id' => $request->subcategory_extra_id,
//observe
答案 1 :(得分:0)
为什么在代码中使用'user_id
两次?
一个是
'user_id' => auth()->user()->id,
另一个是
'user_id' => $request->subcategory_extra_id,
只使用一个而不是两个。并尝试使用以下方式:
'user_id' => Auth::user()->id;
请记住:在这种情况下,您必须use
Auth
类的命名空间。
希望它能运作
答案 2 :(得分:0)
尝试使用它 使用Auth命名空间 然后
$website = Website::create([
'user_id' => Auth::user()->id,
'name' => $request->name,
'url' => $request->url,
'description' => $request->description,
'subcategory_id' => $request->subcategory_id,
]);