我想在链中调用一组函数时执行其他操作。
我在 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 使用的逻辑吗?
最佳答案
您可以使用php函数debug_backtrace
获取所有被调用函数的列表,至于使用的逻辑,您可以在
where
orWhere
whereNested
所有三种方法都在查询构建器类 Illuminate/Database/Query/Builder
中
关于laravel - 有没有办法知道当前方法是否用于链式调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47199457/