【问题标题】:How to apply condition to Laravel eloquent relation如何将条件应用于 Laravel 雄辩关系
【发布时间】:2019-06-21 04:31:30
【问题描述】:

我有一个 ProcessHistory 和 Person 模型,我需要一个雄辩的代码来处理与多个条件的关系。 状况: 1. oindex = oindex 2. pat_id = pat_id

我想要一个雄辩的代码来得到以下sql代码的结果

select * from tbl_process_history as s join tbl_persons as p on (s.oindex = p.oindex and s.pat_id = p.pat_id)

我需要让所有具有相同 oindex 和 pat_id 的人。我已经尝试过使用下面雄辩的代码,我可以在关系“自己的”中应用条件。这里我只能作为静态值申请。

ProcessHistory::with(['own'=>function($query){
                return $query->where('pat_id','');
            }])->get();

我需要一个关系内部的条件,我可以将流程历史模型的 pat_id 与人员模型相匹配。

【问题讨论】:

  • 您是否尝试过使用:外键的关系,以及其他部分的 where 子句?

标签: database laravel eloquent laravel-5.4


【解决方案1】:

我刚刚发现我实际上是在搜索与复合键的关系,但 laravel 中没有提供此功能。可以通过https://github.com/topclaudy/compoships包解决。

【讨论】:

    【解决方案2】:

    ProcessHistory::with(['own'=>function($query) 使用 ($param){ 返回 $query->where('pat_id',$param); }])->get();

    【讨论】:

    • $param 在您的情况下是动态变量,它应该是 person_id
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2018-11-28
    • 2015-01-11
    • 2021-06-03
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多