2015-04-07 71 views
2

我不知道它实际上是更多钞票,但它可能是这样的:Laravel:通过关系进行搜索?

模式:

User 
id, name, last_name, etc. 

Condition 
id, name 

User_Condition 
id, user_id, condition_id, active, start_date, end_date 

我希望能够做同样的事情到这一点:$user->conditions->active()$user->conditions->active它返回任何行/关系其中active = 1

回答

1

你想获得的所有积极条件用户,对不对?

如果是这样,你可以通过以下查询得到它们。

echo $user->conditions()->where('user_condition.active', true)->get(); 

确保您在user model

public function conditions() 
    { 
     return $this->belongsToMany('App\Condition', 'user_condition'); 
    } 
一个 belongsToMany关系
0

您正在寻找一个with过滤器,也被称为Eager Load Constraints

$user->with['UserCondition'=>function($query){ 
           return $query->whereActive(1); 
          } 
      ]; 

(假设UserCondition关系已经在User口才模型被设定)。

来源:http://laravel.com/docs/5.0/eloquent