在我的应用中,我想将登录的用户ID附加到帖子,下面是我的控制器:
public function storejournal(JournalRequest $request) {
$input = $request->all();
//Input PDF
if ($request->hasFile('file')) {
$input['file'] = $this->uploadPDF($request);
}
//Insert data jurnal
$id = $request->id;
$journal = Edition::findOrFail($id)->journal()->create($input);
$journal->user_id = Auth::id();
$journal->user()->attach($request->input('penulis'));
return redirect()->route('edition', ['id' => $id]);
}
我尝试了上述控制器,但错误提示:SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into
期刊(
标题,
摘要,
档案,
id_edition ,
journalslug {{ 1}}的updated_at ,
{created_at {1}}
我不明白我做错了什么,如果有人可以提供帮助那就太好了。谢谢。
答案 0 :(得分:3)
您在尝试创建日记时未指定user_id
创建日期。
我建议如下:
public function storejournal(JournalRequest $request) {
$input = $request->all();
//Input PDF
if ($request->hasFile('file')) {
$input['file'] = $this->uploadPDF($request);
}
//Insert data jurnal
$id = $request->id;
$journal = Edition::findOrFail($id)->journal()->create($input + ['user_id' => Auth::id()]);
$journal->user()->attach($request->input('penulis'));
return redirect()->route('edition', ['id' => $id]);
}
另外,不要忘记在Journal类中将user_id
设置为可分配的质量。
答案 1 :(得分:2)
错误说你也应该通过user_id
。您可以通过将用户ID添加到$input
:
$input = $request->all();
$input['user_id'] = auth()->user()->id;