第二个嵌套Foreach不打印任何东西


Second Nested Foreach prints nothing

我需要列出这些项目,国家打印良好,但第二个foreach打印什么我不明白

   $countries = array('abc','def','ghi' );
    foreach ($countries as $key) {
        echo "<ul> ".$key;
                $character = characters::where('country',$key);
                foreach ($personaje as $p) {
                   echo $ch->name ;
                }
        echo "</ul>";
    }

应该是这样的,我100%确信表的名称和$key匹配,我使用了artisan's tinker

  • abc {
    -x
    -y
    }
  • def {
    -z
    }
  • ghi {
    }

试试这个:

$countries = array('abc','def','ghi' );
foreach ($countries as $key) {
    echo "<ul> ".$key;
            $character = characters::where('country',$key)->get();
            foreach ($character as $ch) {
               echo $ch->name ;
            }
    echo "</ul>";
}

根据您提供的代码片段,这部分代码存在许多问题:

        $character = characters::where('country',$key);
        foreach ($personaje as $p) {
           echo $ch->name ;
  1. 看起来你试图做一个查询来获得$字符变量,但你没有执行它。在结尾加一个"get"声明:

    $字符=字符::(‘国家’,关键美元)-> ();

  2. 第二个foreach循环使用变量$personaje尚未定义,至少在您提供的代码中尚未定义。应该它是$character代替?

  3. 你的foreach循环使用"$personaje as $p",但是你从来没有使用变量$p相反,您将返回$ch->name。的变量$ch在您提供的代码中不存在。