有没有办法知道当前的方法是否用于链式调用?

Uma*_*med 6 laravel php-7

我想在链中调用一组函数时执行其他操作.

我在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);

});
Run Code Online (Sandbox Code Playgroud)

有没有办法在执行函数时知道这一点?如果没有,有人能指出我使用Laravel的逻辑吗?

A. *_*bak 1

您可以使用 php 函数debug_backtrace来获取所有被调用函数的列表,至于使用的逻辑,您可以在

在哪里

或哪里

嵌套位置

所有三个方法都在查询构建器类中Illuminate/Database/Query/Builder