无法与具有自定义主键的 table 创建 eloquent 关系

Not able to create eloquent relationship with table which have custom primary key

当我尝试从公司模型中获取用户详细信息时,我得到的是 NULL 值。

class User extends Model
{
  protected $primaryKey = 'uid';
}


class Company extends Model
{
   $table = 'company';

   public function users(){
        return $this->hasMany('App\User','user_id','uid');
   }
}

class RepoController{

public function index(){
  $user = Company::where('id',1)->with('user')->get(); 
  /// Returning value but without Users
  } 
}`

users table 应包含 company_id 并且您应将 id 定义为公司 ID,因为 company table 不使用自定义编号:

public function users()
{
     return $this->hasMany('App\User', 'company_id', 'id');
}

或者只是这样:

public function users()
{
    return $this->hasMany('App\User');
}

此外,您正在尝试加载 user 关系,但它应该是 users(),所以改为这样做:

Company::where('id', 1)->with('users')->get();

我觉得你的id位置不对

尝试像

那样交换它们
return $this->hasMany('App\User','uid','user_id');