Laravel:搜索关系?

时间:2015-04-07 04:30:04

标签: php laravel relationship laravel-5

我不知道它是否真的可行,但它可能看起来像这样:

架构:

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的所有行/关系

2 个答案:

答案 0 :(得分:2)

您希望获得用户的所有有效条件,对吗?

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

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

确保您在belongsToMany

中建立user model关系
public function conditions()
  {
      return $this->belongsToMany('App\Condition', 'user_condition');
  }

答案 1 :(得分:0)

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

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

(假设在UserCondition雄辩模型中设置了User关系。

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