0
我有一个问题,即地方不对头分为两个部分:我试图让那里回函=中USER_ID记录的特定事件向下钻取laravel雄辩关系
1)。
2)然后过滤event_date < =今天获取过去的事件。
我在#1卡住了。当我运行
$favorites = Event::with('rsvps')->get();
我得到所有的包括,这是很好的回函的事件,但基于该回函的信息,我不能过滤。
[
{"id":1,"user_id":"1","created_at":"2016-03-01 02:26:48","updated_at":"2016-03-01 02:26:48","event_name":"Awesome Event","event_venue":"The Rainbow Room","address":"612 Rachael Ln.","event_details":"Epic","event_date":"03\/12","image":"2016-03-01-02-26-48-heartHands.jpg","time":"8:00",
"rsvps":[
{"id":1,"created_at":"2016-03-01 02:28:39","updated_at":"2016-03-01 02:28:39","event_id":"1","user_id":"1"}]
},
{"id":2,"user_id":"1","created_at":"2016-03-01 02:40:05","updated_at":"2016-03-01 02:40:05","event_name":"New Event","event_venue":"My House","address":"612 Rachael Ln.","event_details":"Epic","event_date":"03\/01","image":"2016-03-01-02-40-05-img3.jpg","time":"8:00",
"rsvps":[
{"id":2,"created_at":"2016-03-01 02:40:12","updated_at":"2016-03-01 02:40:12","event_id":"2","user_id":"1"},
{"id":3,"created_at":"2016-03-01 22:21:33","updated_at":"2016-03-01 22:21:33","event_id":"2","user_id":"2"}
]}
]
当我运行一个测试,以刚刚得到的回函与USER_ID = 1:
$favorites = Event::with('rsvps')->find('id')->where('rsvps->user_id', '1')->get();
它给我的错误:对空调用一个成员函数,其中()
有人能给我一个线索,知道我做错了什么吗?
太棒了!非常感谢 –
'with'负责急切的加载数据,并且与实际查询rsvps限制事件无关。您正在寻找'has'而不是 – Otto
我修改的代码是拾取所有事件,而不仅仅是具有特定ID的事件: '$ myFavs = Event :: with(['rsvps'=> function($ q) {$ {0}}其中('user_id',2); }]) - > get();' –