я две модели пользователя и UserType объявлен следующим образом: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 всегда имеет значение null. Журнал запросов MySQL показывает, что Laravel смог получить запись user_type.
Единственное различие между компании и UserType отношения типа данных первичных ключей. company.company_id является числовым, а user_type.user_type_id - это строка. Я думаю, что это связано с типом данных ключей, однако у меня есть аналогичная настройка на Laravel 5.1, и она работает отлично.
Проблема - действительно тип данных, как я изначально предполагал. См. Мой ответ. – gmarintes