无法使用Laravel Api保存到数据库

时间:2019-12-11 00:28:15

标签: php laravel api laravel-api

我的laravel应用程序中有很多关系设置

在我的User Model中,我已经建立了自己的关系

public function categories()
{
    return $this->belongsToMany(Category::class)->withTimestamps();
}

在我的“类别模型”中,我建立了恋爱关系

public function users()
{
    return $this->belongsToMany(User::class)->withTimestamps();
}

在名为pivot的{​​{1}}表中,我具有此表架构

categoryuser

我正在尝试使用此方法添加保存到我的数据透视表中

public function up()
{
    Schema::create('category_user', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->integer('category_id')->unsigned();
        $table->integer('user_id')->unsigned();
        $table->timestamps();
    });
}

但是它不起作用,我不知道我在做什么错

在我的api.php中,我有这个

public function categoryUserapi (Request $request)
{

    $validatedData = $request->validate([
      'category_id' => 'required|array|min:3',
      'category_id.*' => 'integer',
  ]);
  $user = Auth::user();
  $user->categories()->attach($request->input('category_id'));

  return response(['user'=> $user]);
}

更新

返回错误

  

“ message”:“在成员函数上调用null的类别函数”

1 个答案:

答案 0 :(得分:0)

如果要传递用户ID,则将Auth :: user更改为User :: find

public function categoryUserapi (Request $request)
{


  $user = User::find($request->user_id);
  $user->categories()->attach($request->input('category_id'));

  return response(['user'=> $user]);
}