首页 > 解决方案 > Laravel 多对多关系返回 null

问题描述

我有一个与自身有多对多关系的类用户

public function following(){//Many To Many relationship
    return $this->belongsToMany(User::class, 'users_users', 'username', 'follower');
}
public function followers(){//Many To Many relationship
    return $this->belongsToMany(User::class, 'users_users', 'follower', 'username');
}

我做了表迁移users_users:

public function up()
{
    Schema::create('users_users', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();

        $table->string('username');
        $table->foreign('username')->references('username')->on('users');

        $table->string('follower');
        $table->foreign('follower')->references('username')->on('users');
    });
}

当我尝试获取一个用户的关注者时,当表中充满关系时,它会返回一个空数组。

public function getFollowers(String $username){
    $user = User::where('username',$username)->get();
    if(!$user){//si no ha encontrado el user con ese id
        return response()->json(['message' => 'User not found'],404);
    }
    return response()->json(['followers' => $user[0]->followers],200);
}

任何想法?:/

标签: phplaravel

解决方案


推荐阅读