I have two mongo documents that are related to each other in a many to many relationship. One is called Lawyer and the other LawCase.
My Lawyer model has:
public function cases() { return $this->belongsToMany('App\LawCase'); }
My LawCase model has:
public function lawyers() { return $this->belongsToMany('App\Lawyer'); }
All I am trying to do is find lawyers that have a certain category of law cases.
$lawyers = App\Lawyer::whereHas('cases', function($q){ $q->where('category', '=', 'DUI'); })->get();
This gets nothing even though I have lawcase documents that have a category of 'DUI'.
When I do
$lawyers = App\Lawyer::with('cases')->get();
That gets me a result set. Just having some issues with wherehas. What am I missing?
I tried researching the issue but looks like others may have similar issue:
Laravel + Jenssegers\Mongodb: 'WhereHas' and 'Has' returns empty collection
If whereHas would not work, how would you get about doing this?
UPDATE:
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" ] }
My LawCase Document
{ "_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" ] }