2016-09-18 62 views
-3

我需要做一個列表與這些項目,國家印刷精美,但第二的foreach打印什麼我不明白二嵌套的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%放心,表和$關鍵比賽的名字,我跟工匠的修補匠做到了

  • ABC {
    -x
    -y
    }
  • 高清{
    -z
    }
  • GHI {}
+0

您在這裏讀取字符'$字符=字符::在哪裏( '國家',$鍵);'然後在下面的'foreach'循環,你是使用'$ personaje'。那個是從哪裏來的? – linuxartisan

+1

正如@linuxartisis指出的那樣,'$ personaje'來自任何地方。你也必須在構建它們之後執行查詢;使用'$ character = characters :: where('country',$ key) - > get();' – Qevo

+0

對不起,因爲我沒有將$ personaje轉換爲$字符,仍然這不是問題,因爲它打印的第一個foreach,但第二個它只是忽略我不知道爲什麼。它沒有打印任何東西 –

回答

0

有許多與這部分代碼的問題,根據您提供的片段:

 $character = characters::where('country',$key); 
     foreach ($personaje as $p) { 
      echo $ch->name ; 
  1. 它看起來像您正在嘗試執行查詢以獲取$字符 變量,但您沒有執行該操作。在 聲明的末尾添加一個「get」即可:

    $ character = characters :: where('country',$ key) - > get();

  2. 你的第二個foreach循環使用可變$ personaje,這 尚未確定的是,至少在你提供的代碼。應該 它是$字符而不是?

  3. 你的foreach循環使用 「$ personaje爲$ P」,但你永遠在你的循環使用 變量$ P。相反,你在迴應$ ch->名稱。您提供的代碼中不存在 變量$ ch

+0

是的,因爲我忘了使用 - > get(); –

1

試試這個:

$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>"; 
}