2016-11-15 26 views
2

在我的应用我要附加在用户ID的登录到一个帖子,下面是我的控制器:附加用户ID后(Laravel 5.3)

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 ,的updated_at , created_at ) values (Rancang bangun website Jurnal Online jurusan Teknik Informatika Universitas Palangkaraya, ddd, test3.pdf, 1, rancang-bangun-website-jurnal-online-jurusan-teknik-informatika-universitas-palangkaraya, 2016-11-15 03:43:34, 2016-11-15 03:43:34))

我不明白我做错了什么,如果有人能够帮助这将是巨大的。谢谢。

回答

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]); 
} 

另外,不要忘记有user_id集作为杂志类质量分配。

+1

问题很简单,正确的,我忘了设置“user_id”作为日记类课程的质量赋予,我的坏我的坏.. –

2

错误说你也应该通过user_id。您可以将用户ID的$input做到这一点:

$input = $request->all(); 
$input['user_id'] = auth()->user()->id; 
+0

仍然得到相同的错误:(注意:我有这两个表(用户和日记)之间的多个关系,第一个是使用数据透视表连接的多对多关系,第二个是一个一对多的关系,而不使用数据透视表 –

+1

它现在正在工作,似乎问题是我忘了将日记类中的“user_id”字段设置为mass assignment,我的问题很糟糕 –