嘿,我这里有一个Laravel项目,你能帮助我解决这个关于关系的问题吗?
我有以下数据库结构:
users
id
name
email
password
event
id
description
city_id
block_range
id
event_id
user_block_ranges
user_id
block_range_id
解释
users
:普通用户身份验证表。 (与belongsToMany
有<{1}}的关系
user_block_ranges
:存储活动信息。 (与event
有<{1}}的关系
hasMany
:保存事件的时间块。 (与block_range
有<{1}}的关系
真正的问题是:我如何获得用户的所有事件?通过block_range
然后belongsTo
关系?也许使用event
?
提前致谢。
答案 0 :(得分:1)
我相信你的模特看起来像这样:
用户模型
class User extends Model
{
public function blockRanges()
{
return $this->belongsToMany('App\BlockRange', 'user_block_ranges', 'user_id', 'block_range_id');
}
}
阻止范围模型
class BlockRange extends Model
{
public function event()
{
return $this->belongsTo('App\Event');
}
}
要获取用户的所有事件,您可以执行以下操作:
$user = App\User::find(1);
$events = array();
foreach ($user->blockRanges as $block_range) {
$events = $block_range->event;
}