考虑到这个关闭:
$users = User::with(array('posts' => function($query) {
$query->orderBy('created_at', 'desc');
}))->get();
如何将$query
传递给get()
,例如->get('query')
?
如果可能的话。
更新:
这是接受答案的后续行动。
以下是针对类似情况的结果代码,基于$query->getRelation()
提示。
$query = Ticket::with(array('user' => function($q) use ($search) {
$q->where('name', 'LIKE', '%'. $search .'%')->orWhere('username', 'LIKE', '%'. $search .'%');
}));
return $query->whereIn('user_id', $query->getRelation('user')->lists('id'))->paginate(10);
在Eloquent中实现它的众多方法中的另一种。
答案 0 :(得分:0)
这对我没有任何意义,但我认为您可以尝试这样做以获取$query
实例:
$users = User::with(array('posts' => function($query) {
$query->orderBy('created_at', 'desc');
}));
$relation = $users->getRelation('posts');
$relation
将包含Illuminate\Database\Eloquent\Relations\HasMany
的实例(希望如此),但不确定如何使用它,但您可以使用$relation->getForeignKey()
获取foreignkey
属性。最后,$users->get()
将执行查询。
您也可以使用以下内容获取关系($ query)对象:
$user = User::query();
$relation = $user->getRelation('posts');
dd($relation); // Illuminate\Database\Eloquent\Relations\HasMany
P / S:我不清楚你要做什么,如果它有所帮助,你得到你想做的事情,那么请在评论中分享想法/事情。谢谢!的