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

标签 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);

});

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

最佳答案

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

where

orWhere

whereNested

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

关于laravel - 有没有办法知道当前方法是否用于链式调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47199457/

相关文章:

php - 如何使用php函数将mysql查询输出到csv更改列值

php - 我从/var/run/php-fpm/丢失了我的 php-fpm.sock 文件

php - SQLSTATE[HY000] [1049] 未知数据库 'u675813745_ymeda'

php - Auth::attempt($credentials) 总是返回 false

php - Laravel - diffForHumans 德语

oauth-2.0 - php7 oauth非法内存分配

php - 在 PHP7 Apache/2.4.7 (Ubuntu) 上安装 phpmyadmin 时遇到问题

php - 这个运算符 '??' 如何在 php 代码中工作?

php - 一般错误 : 1 near ")": syntax error") in Laravel 5. 6.33

PHP fatal error : method_exists(): The script tried to execute a method or access a property of an incomplete object Laravel 5. 3