无法与具有自定义主键的 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');
当我尝试从公司模型中获取用户详细信息时,我得到的是 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');