gpt4 book ai didi

Laravel Mongo 多对多关系不起作用

转载 作者:行者123 更新时间:2023-12-03 18:27:45 25 4
gpt4 key购买 nike

我有两个 mongo 文档,它们以多对多的关系相互关联。一个叫做 Lawyer,另一个叫做 LawCase。

我的律师模型有:

public function cases()
{
return $this->belongsToMany('App\LawCase');
}

我的 LawCase 模型具有:
public function lawyers()
{
return $this->belongsToMany('App\Lawyer');
}

我所要做的就是找到拥有特定类别法律案件的律师。
$lawyers = App\Lawyer::whereHas('cases', function($q){
$q->where('category', '=', 'DUI');
})->get();

即使我有属于“酒后驾车”类别的法律文件,这也一无所获。

当我做
$lawyers = App\Lawyer::with('cases')->get();

这让我得到一个结果集。只是在 whereha 上有一些问题。我错过了什么?

我尝试研究这个问题,但看起来其他人可能有类似的问题:

Laravel + Jenssegers\Mongodb: 'WhereHas' and 'Has' returns empty collection

如果 whereHas 行不通,你会怎么做呢?

更新:
My Lawyer Document

{
"_id" : ObjectId("5945f88c9a89205aae0efea8"),
"full_name" : "Some Name ",
"active" : true,
"updated_at" : ISODate("2017-06-18T03:50:36.849+0000"),
"created_at" : ISODate("2017-06-18T03:50:36.849+0000"),
"law_case_ids" : [
"5945f88c9a89205aae0efea9",
"5945f88c9a89205aae0efeac",
"5945f8b59a89205aae0f3f81",
"5955d0ff9a89200a57340db8"
]
}

我的法律案件文件
{ 
"_id" : ObjectId("5945f88c9a89205aae0efe9a"),
"category" : "DUI",
"updated_at" : ISODate("2017-06-18T03:50:36.825+0000"),
"created_at" : ISODate("2017-06-18T03:50:36.821+0000"),
"lawyer_ids" : [
"5945f88c9a89205aae0efe99"
]
}

最佳答案

这是正确的方法,这将返回具有与类别匹配的案件的律师 DUI .

$lawyers = App\Lawyer::with(['cases'=> function($q){
$q->where('category', '=', 'DUI');
}])->get();

关于Laravel Mongo 多对多关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com