Php 有口才的人可以处理多种关系
有三张桌子Php 有口才的人可以处理多种关系,php,laravel,orm,eloquent,Php,Laravel,Orm,Eloquent,有三张桌子 users: - ... - some_param admins: - ... - club_id - some_param clubs: - id - title 每个用户可以有多个管理员(由一些参数关联),每个管理员可以有多个俱乐部,我想得到每个俱乐部的标题 所以我定义了一个关系: class User extends Eloquent { public function admins() { return $this->hasM
users:
- ...
- some_param
admins:
- ...
- club_id
- some_param
clubs:
- id
- title
每个用户可以有多个管理员(由一些参数关联),每个管理员可以有多个俱乐部,我想得到每个俱乐部的标题
所以我定义了一个关系:
class User extends Eloquent {
public function admins() {
return $this->hasMany('Admin', 'some_param', 'some_param');
}
}
class Admin extends Eloquent {
public function clubs() {
$this->hasMany('Club', 'id', 'club_id');
}
}
并希望在模板中使用它:
@foreach($user->admins as $admin)
@foreach($admin->clubs as $club)
{{ $club->title }}
@endforeach
@endforeach
但是我得到了一个错误:关系方法必须在@foreach($admin->clubs as$club)
行返回一个类型为illumb\Database\elount\Relations\Relations
的对象
我做错了什么?提前感谢。在以下功能中:
public function clubs() {
$this->hasMany('Club', 'id', 'club_id');
}
您没有return
,因此请像这样使用return
:
public function clubs() {
return $this->hasMany('Club', 'id', 'club_id');
}
另外,在$User
变量中获取User
集合时,请尝试使用,例如:
$user = User::with('admins.clubs')->find(1);
这将减少查询