将用户ID附加到帖子(Laravel 5.3)

时间:2016-11-15 03:49:29

标签: laravel laravel-5

在我的应用中,我想将登录的用户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}}

我不明白我做错了什么,如果有人可以提供帮助那就太好了。谢谢。

2 个答案:

答案 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;