Php 最大函数嵌套级别为';1000';到达,中止!关于join+;get()甚至设置xdebug

Php 最大函数嵌套级别为';1000';到达,中止!关于join+;get()甚至设置xdebug,php,laravel,fatal-error,Php,Laravel,Fatal Error,当我运行这段代码时,它会抛出一个错误 $result = Commission::leftJoin("bill" , "bill.id" , "=" , "Commissions.bill_id")->selectRaw( $raw )->groupBy("Commissions.id")->get(); 但这第二个代码运行良好 $result = Commission::leftJoin("bill" , "bill.id" , "=" , "Commissions.bi

当我运行这段代码时,它会抛出一个错误

$result = Commission::leftJoin("bill" , "bill.id" , "=" , "Commissions.bill_id")->selectRaw(  $raw )->groupBy("Commissions.id")->get();
但这第二个代码运行良好

$result = Commission::leftJoin("bill" , "bill.id" , "=" , "Commissions.bill_id")->selectRaw(  $raw )->groupBy("Commissions.id")->get()->first();
即使我把
->take(10)
,仍然会抛出一个错误

已达到最大函数嵌套级别“1000”,正在中止

正如您在错误消息中所看到的,我已将xdebug.max_nesting_级别设置为1000

话虽如此,我需要获得所有具有相同佣金ID的账单,但除非我先将
放在前面()
,否则
get()
函数不允许我这样做。我想知道还有什么可能导致这个错误?非常感谢您的帮助

更新

我已经弄明白了。谢谢你帮我找出可能的原因。无论如何,我必须解释发生了什么。上面的代码与错误无关(抱歉,我没有进行足够的调查,必须在这里询问)

我有Controller.php

public function retrieve( $type , $str = '' ){
    $base = new BaseReport();
    $class = ($type == "BaseReport" ? "Reports\\" . $type : "Reports\\" . $base->getMap($type) ) ;
    $report = new  $class();
    return $report->getVariable($str);
}

public function retrieveData($items , $type , $where , $groupby)
{
    $base = new BaseReport();
    $class = ($type == "BaseReport" ? "Reports\\" . $type : "Reports\\" . $base->getMap($type) ) ;
    $report = new  $class();
    return $report->retrieveData($items , $where , $groupby);
}
和一个BaseReport.php

public function retrieveData($items , $where , $groupby = '' ){
    //SOME LONG CODE

//THIS IS THE CODE I STATED IN THE QUESTION
$result = $model->leftJoin($table , $table . "." $pk , "=" , $base_table . "." . $fk)
->selectRaw(  $raw )
->groupBy($base_table . "." . $pk)
->get();
return $result;}
我在页面的某个地方连续使用了它

$base_ = "commissions"
                        $transactions = $print_format->retrieveData($fcs , $base_ . ".report" , $where , $table_group_by );
                        $cellItem =  $print_format->retrieve( $base . ".report" , $fcs[$i]);
$print\u format->retrieve
返回null并导致错误


再次感谢您的帮助。

我相信这是因为您正在调用的一个链式方法正在调用自身,导致循环和您收到的失败消息

我的直觉是这是selectRaw方法。你在传递什么SQL

此外,看起来您可以使用渴望加载而不是连接来实现您所寻求的目的


所以佣金::与('bill')->其中。。。或者类似的事情。

我认为发生这种情况是因为您正在调用的一个链式方法正在调用自身,导致循环和您正在接收的失败消息

我的直觉是这是selectRaw方法。你在传递什么SQL

此外,看起来您可以使用渴望加载而不是连接来实现您所寻求的目的


所以佣金::与('bill')->其中。。。或者类似的东西。

那么,你的问题是什么?这两段代码是相同的,它们不是@limonte,在他使用的第二个示例中是
->first()@Daan哦,我明白了,谢谢。您应该使用
->first()
而不使用
->get()
。您确定是查询引发了错误吗?在连接到查询的代码中,似乎有一个无止境的循环。那么,你的问题是什么?这两段代码是相同的,在他使用的第二个示例
->first()中它们不是@limonte@Daan哦,我明白了,谢谢。您应该使用
->first()
而不使用
->get()
。您确定是查询引发了错误吗?在连接到查询的代码中,似乎有一个无止境的循环。