2013-03-24 55 views

回答

0

我会使用PushMessage类来查询它们。

$user = User::find(Auth::user()->id); 
$pushMessages = PushMessage::whereIn('application_id', $user->applications()->lists('id')); 
+0

有没有办法使用ORM的集合来查询它?这似乎基本上是写手动SQL ... – 2013-03-24 19:45:18

+0

此外,你发出两个查询,这可以根据我的例子完成一个。 – 2013-03-24 21:07:01

0
PushMessage::leftJoin(Application::getTable(), Application::getTable().'.id', '=', PushMessage::getTable().'.application_id')->leftJoin(...)->where(Application::getTable().'.user_id','=',1)->select(PushMessage::getTable().'.*')->get(); 

口才真的只是卸载方法调用流畅查询生成器。虽然,我会建议在一个方法中包装这个特定的查询,或者把它放在一个仓库中

+0

再次,这似乎是一个黑客。如果你看看我的示例查询,我正在使用急切的加载来加载关系...我很难相信没有办法访问这些数据... – 2013-03-24 21:06:15

+1

这不是黑客。雄辩确实只是尝试成为sql和Objects之间的一个薄层。我写的查询并不完整,因为我不想写下所有的连接。更新:我看看你的QueryCode.php,我认为它的“StudlyCaps”,这阻止你的关系被急切加载。 – kapv89 2013-03-24 21:14:06