Laravel:仅在存在其他Eloquent模型时才加入

时间:2014-11-05 11:10:48

标签: php laravel eloquent

我有2个模型,UserPackage。用户有很多包,每个包属于1个用户。我想从数据库中检索随机数量的用户,但前提是他们有包,如下所示:

return self::orderBy(\DB::raw('RAND()'))->packages()->take(6)->get();

packages()就像这样简单:

return $this->hasMany($packageModel);

我在查询中混合了where('package.name', != ,'')但这不起作用(仍然返回具有空包的用户)。我想要的是带6个拥有包的随机用户。对此有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

Matt Burrow解决方案。

使用:

self::with('packages')->has('packages')->orderBy(\DB::raw('RAND()'))->take(6)->get();

has方法仅返回存在此关系的模型。