我有 postqs 和 users 表。user_id 是 postqs 表中的外键。我有一个表格,在我提交表格后,所有数据都正确保存在数据库中。但它不是指向索引页面,它显示此错误:
SQLSTATE[HY000]: 一般错误: 1364 字段 'user_id' 没有默认值 (SQL: insert into
Postqs(question,description,solution,image,tags,updated_at,created_at) values (hh, bb, bb, images .bmp.jpg, bb, 2017 -09-20 08:14:32, 2017-09-20 08:14:32))
我该如何解决?
存储控制器功能:
public function store(Request $request)
{
$this->validate($request, [
'question' => 'required',
'description' => 'required',
'tags' => 'required',
]);
$user = auth()->user();
$user->postqs()->create($request->all() );
$input = $request->all();
$tags = explode(",", $request->tags);
$postqs = Postqs::create($input);
$postqs->tag($tags);
return redirect()->route('postqs.index')
->with('success','Your question created successfully');
Run Code Online (Sandbox Code Playgroud)
索引控制器功能:
$postqs=Postqs::whereHas('user')->get();
return view('postqs.index',compact('postqs','users'));
Run Code Online (Sandbox Code Playgroud)
postqs模型:
protected $fillable =
['question','description','solution','image','tags','user_id'];
public function user(){
return $this->belongsTo("App\User"); }
Run Code Online (Sandbox Code Playgroud)
用户模型:
public function postqs(){
return $this->hasMany("App\Postqs");
}
Run Code Online (Sandbox Code Playgroud)
您表中的字段 user_id 不可为空,并且您尝试在没有 user_id 的情况下保存帖子,或者可能是 user_id 未通过请求传递。尝试这个:
$this->validate($request, [
'question' => 'required',
'description' => 'required',
'tags' => 'required',
]);
$user = auth()->user();
$data = $request->all();
$data['user_id']=$user->id;
$user->postqs()->create($data);
$tags = explode(",", $request->tags);
$postqs = Postqs::create($data);
//$postqs->tag($tags);
$postqs->tag()->save($tags);
return redirect()->route('postqs.index')
->with('success','Your question created successfully');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8231 次 |
| 最近记录: |