无法与具有自定义主键的表创建雄辩的关系

时间:2017-01-25 05:07:03

标签: laravel eloquent relationship laravel-eloquent

当我试图从公司模型中获取用户详细信息时,我获得了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');
   }
}

类RepoController {

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

2 个答案:

答案 0 :(得分:0)

users表应包含company_id,您应将id定义为公司ID,因为company表不使用自定义ID:

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();

答案 1 :(得分:0)

我认为你的ids位置错误

尝试像

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