我有兩個機型的用戶和用戶類型聲明如下:Laravel ORM關係返回上Laravel空5.2
class User extends Model {
protected $table = 'user';
protected $primaryKey = 'user_id';
public function company() {
return $this->hasOne('App\Models\Company', 'company_id', 'company_id');
}
public function userType() {
return $this->hasOne('App\Models\UserType', 'user_type_id', 'user_type_id');
}
}
class UserType extends Model {
protected $table = 'user_type';
protected $primaryKey = 'user_type_id';
}
現在,我使用查詢的關係:
User::with('userType', 'company')->all()
奇怪的是,我得到公司但userType始終爲空。 MySQL查詢日誌顯示Laravel能夠獲取user_type記錄。
公司和USERTYPE之間的唯一區別關係是主鍵的數據類型。 company.company_id是數字,而user_type.user_type_id是一個字符串。 我認爲它與鍵的數據類型有關,但是我在Laravel 5.1上有類似的設置,它運行的很好。
這個問題確實是我最初猜測的數據類型。看到我的答案。 – gmarintes