私はCakePHP 3.2で作業しています。私は2つのテーブルを持っていますcategories
とsubcategories
subcategories
はcategories
と外部キーcategory_id
に関連付けられています。CakePHP 3:find( 'all')とともに関連データを表示
これらの2つのテーブルを使用してナビゲーションを作成する必要があります。これはこのように見えるでしょう
-Menu
|- Category_1
|- Category_1_subcategory_1
|- Category_1_subcategory_2
|- Category_1_subcategory_3
|- Category_2
|- Category_2_subcategory_1
|- Category_2_subcategory_2
|- etc
これは私のやったことです。 AppController.php
navigation.ctp
$foreach($menu_categories as $menu_category):
echo $menu_category->title;
foreach($menu_category->Subcategories as $subcategory):
echo $subcategory->title;
endforeach;
endforeach;
で次に
// set navigation menu
$this->loadModel('Categories');
$menu_categories = $this->Categories->find('all', [
'contain' => ['Subcategories'],
]);
$this->set('menu_categories', $menu_categories);
で しかし、これは私がそれぞれ属するカテゴリの下にサブカテゴリを印刷する必要が唯一のcategory->title
ずsubcategories
を印刷します。
'echo $ menu_category-> title'には何がありますか? Categoriesテーブルには、私が印刷している 'title'カラムがあります。これはうまく印刷されています –
あなたのスニペットで "$ menu_cateory"と書いてありますが、文字gがありません。それがソースファイルのコードであれば、それは確かに構文エラーであるため、別のものが印刷されています。私のコメントの要点は、モデルを正しく関連付けていることを確認することです。 – Caius
オハイオ州、申し訳ありませんが、コードはソースから直接ではありませんでした。これは型付きされたもので、型付きエラーでした。 –