【问题标题】:Laravel: search through relationships?Laravel:搜索关系?
【发布时间】:2015-06-11 14:07:35
【问题描述】:

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

架构:

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 的任何行/关系

【问题讨论】:

    标签: php laravel relationship laravel-5


    【解决方案1】:

    您正在寻找with 过滤器,也称为急切负载约束

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

    (假设UserCondition关系已在User eloquent模型中设置)。

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

    【讨论】:

      【解决方案2】:

      您想获取用户的所有活动条件,对吧?

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

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

      确保在user model 中建立belongsToMany 关系

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

      【讨论】:

        猜你喜欢
        • 2015-10-30
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-30
        • 2015-10-29
        相关资源
        最近更新 更多