###前提・実現したいこと
アソシエーションしたタグとキーワードを一覧画面に表示したい。
完成させたいfigを載せます
●テーブルの準備とbake処理
blogsテーブル
id | title | data |
---|---|---|
1 | ブログのタイトルその1 | 2017/06/30 |
2 | ブログのタイトルその2 | 2017/07/13 |
3 | ブログのタイトルその3 | 2017/07/20 |
tagsテーブル
id | title | |
---|---|---|
1 | 日記 | |
2 | 仕事 | |
3 | 休日 |
keywordsテーブル
id | title | |
---|---|---|
1 | 天気 | |
2 | 窓 | |
3 | 雲 | |
4 | 占い | |
5 | 上位 | |
6 | 温泉 |
blogs_tagsテーブル
blog_id | tag_id | |
---|---|---|
1 | 1 | |
1 | 2 | |
2 | 1 | |
3 | 3 | |
4 | 1 | |
4 | 2 |
blogs_keywordsテーブル
blog_id | keyword_id | |
---|---|---|
1 | 1 | |
1 | 2 | |
1 | 3 | |
2 | 4 | |
2 | 5 | |
3 | 6 |
[blogs][tags][keywords]に関してbake allで自動生成させました。
ここで
/test/blogs/view/1
とレンダリングしたときに(イメージ画像を下に載せます)
blogsのid=1の記事の詳細内容が表示されます。
そして[tags][keywords]テーブルでアソシエーションされた内容も記述されます。
このようにアソシエーションされた内容を記事一覧ページ
/test/blogs/
をレンダリングさせたときにも表示させたいのです。
bakeしたそのままの状態でしたら
blogsテーブルの中身だけの一覧が表示されます、
つまり、idとtitleとdataこれにプラスして
アソシエーションさせた情報つまり「タグ」「キーワード」情報も表示させたいです。
ご教示お願い致します。
現在のBlogsController.php(indexとviewの部分)を記します
php
1 public function index() 2 { 3 $Blogs = $this->paginate($this->Blogs); 4 5 $this->set(compact('Blogs')); 6 $this->set('_serialize', ['Blogs']); 7 } 8 9 public function view($id = null) 10 { 11 $Blog = $this->Blogs->get($id, [ 12 'contain' => ['Keywords', 'Tags'] 13 ]); 14 15 $this->set('blog', $blog); 16 $this->set('_serialize', ['blog']); 17 }
###補足情報(言語/FW/ツール等のバージョンなど)
cakephp3系

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/23 06:20 編集
2017/07/23 07:22 編集
2017/07/23 12:02