Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从闭包内部抓取外部变量_Php_Laravel_Closures - Fatal编程技术网

Php 从闭包内部抓取外部变量

Php 从闭包内部抓取外部变量,php,laravel,closures,Php,Laravel,Closures,考虑到这一结束: $users = User::with(array('posts' => function($query) { $query->orderBy('created_at', 'desc'); }))->get(); 如何将$query传递给get(),例如->get('query') 如果这是可能的话 更新: 这是对公认答案的后续行动 下面是基于$query->getRelation()提示的类似情况的结果代码 $query = Ticket::wit

考虑到这一结束:

$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);

另一种以雄辩的方式实现它的方法。

这对我来说没有任何意义,但我认为您可以尝试以下方法来获得
$query
实例:

$users = User::with(array('posts' => function($query) {
    $query->orderBy('created_at', 'desc');
}));
$relation = $users->getRelation('posts');
$relation
将包含一个
illighte\Database\elogent\Relations\hassmany
(希望如此)的实例,但不确定如何使用它,但您可以使用
$relation->getForeignKey()
来获取
foreignkey
属性。最后,
$users->get()
将执行查询

您还可以使用如下方式获取关系($query)对象:

$user = User::query();
$relation = $user->getRelation('posts');
dd($relation); // Illuminate\Database\Eloquent\Relations\HasMany

p/S:我不清楚你要做什么,如果这有帮助,你得到了你想要做的,那么请在评论中分享想法/事情。谢谢

为什么需要传递到
get
?这是您编写的框架/类吗?或者您正在使用外部库?如果它只是您编写的内容,请让
User::with
返回一个类的实例,该类具有
$query
,作为
->get()
方法可以使用的属性access@WereWolf因为我可以返回一个数组并使用类似于
->的东西,其中('foreign_key',$query)
。但在开始之前,我会问这个问题。它很有效,我会更新这个问题并展示我在做什么。你可能会发现这很有趣,在我上面的更新中,
$query->getRelation('user')->list('id')
似乎没有应用约束。我喜欢它
这是以雄辩的方式实现它的另一种方式。
+1:-)