Laravel 关系 3 模型
Laravel Relationship 3 Models
我有 3 个模型 User、Campus、UserStatus。结构是这样的:
Campus
- id
- name
User
- id
- name
UserStatus
- id
- admission_date
- current_status
- user_id
- campus_id
我想知道特定校园中有多少用户。这就是我到目前为止所做的。
User.php
public function UserStatus()
{
return $this->hasOne('App\Models\UserStatus' , 'user_id');
}
Campus.php
public function UserStatus()
{
return $this->hasMany('App\Models\UserStatus');
}
UserStatus.php
public function User()
{
return $this->belongsTo('App\User', 'user_id');
}
public function Campus()
{
return $this->belongsTo('App\Models\Campus', 'campus_id');
}
校园与用户的关系是什么?
您可以使用 "has-many-through" 关系。
请检查以下内容URL。
https://laravel.com/docs/5.8/eloquent-relationships#has-many-through
你可以使用 belongsToMany
我认为您遇到了同样的问题,他在 eloquent
的查询中使用 belongsToMany 和 "with" 解决了这个问题
相反,我使用了一个函数:
public function User()
{
$users = \App\User::whereHas('UserStatus', function($q){
$q->where('campus_id', $this->id);
});
return $users;
}
对我有用..我希望有更好的方式来建立关系。但现在它的工作。谢谢
我有 3 个模型 User、Campus、UserStatus。结构是这样的:
Campus
- id
- name
User
- id
- name
UserStatus
- id
- admission_date
- current_status
- user_id
- campus_id
我想知道特定校园中有多少用户。这就是我到目前为止所做的。
User.php
public function UserStatus()
{
return $this->hasOne('App\Models\UserStatus' , 'user_id');
}
Campus.php
public function UserStatus()
{
return $this->hasMany('App\Models\UserStatus');
}
UserStatus.php
public function User()
{
return $this->belongsTo('App\User', 'user_id');
}
public function Campus()
{
return $this->belongsTo('App\Models\Campus', 'campus_id');
}
校园与用户的关系是什么?
您可以使用 "has-many-through" 关系。
请检查以下内容URL。
https://laravel.com/docs/5.8/eloquent-relationships#has-many-through
你可以使用 belongsToMany
我认为您遇到了同样的问题,他在 eloquent
相反,我使用了一个函数:
public function User()
{
$users = \App\User::whereHas('UserStatus', function($q){
$q->where('campus_id', $this->id);
});
return $users;
}
对我有用..我希望有更好的方式来建立关系。但现在它的工作。谢谢