我希望在链中调用一组函数时执行其他操作。
我在Laravel查询构建器中看到过这种情况,但我无法找到它背后的现有逻辑。它定义了一个集合中的where子句,如果它们是链接的,则另外分开(在whereNested函数回调中)。
$q->whereNested(function (Builder $q) {
// Generates "Where (first = 1 and second = 2) or third = 3"
$q->where('first', 1)->where('second', 2);
$q->orWhere('third', 3);
});
有没有办法在执行函数时知道这一点?如果没有,有人能指出Laravel使用的逻辑吗?
答案 0 :(得分:1)
您可以使用php函数debug_backtrace
来获取所有被调用函数的列表,关于所使用的逻辑,您可以在其中找到
这三种方法都在查询生成器类Illuminate/Database/Query/Builder