I have in my database:
Campaigns hasMany Tasks hasMany Links hasMany LinkClicks If I query
Campaign::find(1)->task->count(); It returns the correct number of tasks asigned to that campaign. But how can I count link clicks from Campaign id?
Campaign Model:
public function task(){ return $this->hasMany('Task','campaign_id'); } Task Model:
public function campaign(){ return $this->belongsTo('Campaign','campaign_id'); } public function links(){ return $this->hasMany('Link','task_id'); } Link Model:
public function task(){ return $this->belongsTo('Task','task_id'); } public function clicks(){ return $this->hasMany('LinkClick', 'link_id'); } public function user(){ return $this->belongsTo('User','user_id'); } LinkClick Model:
public function link(){ return $this->belongsTo('Link','link_id'); } So, I want to count linkClicks only for links under specific Campaign, no matter which Task or Link, ofcourse that task and link needs to be under specified Campaign.