【发布时间】:2014-07-07 10:07:42
【问题描述】:
我找不到解决方案如何检索属于活动活动的用户的链接?
这是我的模型:
用户模型:
public function links(){
return $this->hasMany('Link','user_id');
}
public function analytic(){
return $this->hasManyThrough('Analytic','Link');
}
活动模式:
public function task(){
return $this->hasMany('Task','campaign_id');
}
public function links(){
return $this->hasManyThrough('Link','Task');
}
任务模型:
public function campaign(){
return $this->belongsTo('Campaign','campaign_id');
}
public function links(){
return $this->hasMany('Link','task_id');
}
public function analytic(){
return $this->hasManyThrough('Analytic','Link');
}
链接模型:
public function task(){
return $this->belongsTo('Task','task_id');
}
public function user(){
return $this->belongsTo('User','user_id');
}
public function analytic(){
return $this->hasMany('Analytic','link_id');
}
因此,管理员创建了属于活动的活动和任务,用户可以开始任务,一旦他们开始任务,他们将获得分配给该任务和活动的链接。
在这种情况下,我可以轻松统计所有用户链接:
$user = User::find(1);
echo $user->links->count();
但我的问题是如何仅回显与活动活动相关的链接。
再次重申:CAMPAIGN 有很多 TASK,TASK 有很多 LINKS,USER 有很多 LINKS。
获取仅用于活动活动的用户的链接数。
与分析类似:(
每个链接都有很多分析(跟踪点击)
分析模型:
public function links(){
return $this->belongsTo('Link','link_id');
}
还需要仅针对处于活动活动中的任务回显链接计数。
【问题讨论】:
-
什么定义了有效的广告系列?
-
在表格广告系列中,我有列 STATUS,它可以是“活动”或“被阻止”。
-
您没有使用一致的命名约定来定义模型中的关系。
-
hasMany & hasManyThrough => 复数形式