Php 雄辩-在嵌套关系上使用渴望加载时出现问题
我试图加载嵌套关系,但返回正确结果时遇到问题 以下是模型: User.phpPhp 雄辩-在嵌套关系上使用渴望加载时出现问题,php,laravel,eloquent,Php,Laravel,Eloquent,我试图加载嵌套关系,但返回正确结果时遇到问题 以下是模型: User.php class User extends Model { public function universities() { return $this->hasMany('\StudentApp\Models\UserUniversity'); } } class UserUniversity extends Model { protected $fillable =
class User extends Model
{
public function universities()
{
return $this->hasMany('\StudentApp\Models\UserUniversity');
}
}
class UserUniversity extends Model
{
protected $fillable = [ 'user_id', 'university_id', 'choice' ];
public function university()
{
return $this->hasOne('\StudentApp\Models\University');
}
}
class University extends Model
{
protected $table = 'university';
}
UserUniversity.php
class User extends Model
{
public function universities()
{
return $this->hasMany('\StudentApp\Models\UserUniversity');
}
}
class UserUniversity extends Model
{
protected $fillable = [ 'user_id', 'university_id', 'choice' ];
public function university()
{
return $this->hasOne('\StudentApp\Models\University');
}
}
class University extends Model
{
protected $table = 'university';
}
University.php
class User extends Model
{
public function universities()
{
return $this->hasMany('\StudentApp\Models\UserUniversity');
}
}
class UserUniversity extends Model
{
protected $fillable = [ 'user_id', 'university_id', 'choice' ];
public function university()
{
return $this->hasOne('\StudentApp\Models\University');
}
}
class University extends Model
{
protected $table = 'university';
}
我要做的是通过ID获取用户,从UserUniversity
pivot表中获取用户大学,然后从university
表中获取该大学的名称
我尝试了以下方法来测试它是否有效:
$user = User::with('universities')->find($this->jwtObject->uid);
return $response->withJson($user->universities[0]->university);
但我得到了以下错误:
Column not found: 1054 Unknown column 'university.user_university_id' in 'where clause' (SQL: select * from `university` where `university`.`user_university_id` = 10 and `university`.`user_university_id` is not null limit 1) [] {"uid":"28c5a97"}
user.user\u university\u id
不正确。该列不存在,我不知道它为什么要使用该列
它应该使用的是user.university\u id
我如何才能做到这一点?正确的语法是:
User::with('universities.university')
另外,确保在大学
表中使用了正确的外键:
user_university_id
或者在关系中定义另一个键:
public function university()
{
return $this->hasOne('\StudentApp\Models\University', 'another_foreign_key');
}
您应该添加外键和主键:
public function universities()
{
return $this->hasMany('\StudentApp\Models\University', 'university_id', 'id');
}