Mysql actullay dd()在laravel中是如何工作的

Mysql actullay dd()在laravel中是如何工作的,mysql,laravel,laravel-5.8,Mysql,Laravel,Laravel 5.8,我有sql命令,比如 $kos = DB::select('SELECT team,round,SUM(points) AS total from points WHERE round="first" GROUP by team ORDER BY total desc, run_rate desc limit 4'); 当我dd($kos)它会给我这个输出,但当我运行这个 $kos = DB::select('SELECT team,round,SUM(points) AS total fro

我有sql命令,比如

$kos = DB::select('SELECT team,round,SUM(points) AS total from points WHERE round="first" GROUP by team ORDER BY total desc, run_rate desc limit 4');
当我
dd($kos)
它会给我这个输出,但当我运行这个

$kos = DB::select('SELECT team,round,SUM(points) AS total from points WHERE round="first" GROUP by team ORDER BY total desc, run_rate desc limit 4');
foreach($kos as $ko){
        dd($ko->team);
}
它会给我这个输出 有人能告诉我为什么吗?

将转储传递的值并退出脚本的执行

在第一种情况下,您将集合传递给dd,它将转储整个集合并停止脚本的执行

在第二种情况下,您处于第一个循环中,转储团队值并停止执行

如果只想转储值而不停止执行,则应调用函数

试试这个

DB::select('SELECT team,round,SUM(points) AS total from points WHERE round="first" GROUP by team ORDER BY total desc, run_rate desc limit 4');
foreach($kos as $ko){
        dump($ko->team);
} 

dd
代表dump&die,这意味着它转储数据,然后终止整个脚本。因此,当您尝试循环时,它只得到一次迭代,然后终止脚本执行,这意味着您永远无法进入第二次迭代。因此,有任何方法可以获得我从dd($kos)获得的所有团队名称我认为困惑不在于
dd
做了什么,而在于
DB::select
$ko->team
是什么或是什么。@RobertRocha我认为这是对
Laravel
PHP
的一个根本性误解,所以有任何方法可以从dd($kos)获得所有团队名称