環境と現状
-
cakephp2.7 (フレームワーク初挑戦です)
-
mysql
-
DBの構造
- Sites
- id
- site_name
- site_url
- Articles
- id
- site_id (Sites の id と連動しています)
- article_title
- article_url
- pub_date (記事が更新された時間です)
- Sites
-
Contoller
- IndexesController.php
php
1class IndexesController extends AppController { 2 3 public $uses = ['Article']; 4 5 public function index() { 6 $indexArticles = $this->Article->find('all', array( 7 'fieleds' => array('article_title', 'article_url', 'pub_date'), 8 'order' => array('pub_date' => 'desc'), 9 'limit' => 50 10 )); 11 12 $this->set('indexArticles', $indexArticles); 13 14 }
-
Model
-
View
- Indexes/index.ctp
php
1<table> 2 <tr> 3 <th>更新時間</th> 4 <th>記事タイトル</th> 5 </tr> 6<?php 7 8foreach ($indexArticles as $data) { 9 $title = $data['Article']['article_title']; 10 $link = $data['Article']['article_url']; 11 $pub_date = $data['Article']['pub_date']; 12 13 echo '<tr>'; 14 echo '<td>'.$pub_date.'</td>'; 15 echo '<td><a href="'.$link.'" target="_blank">'.$title.'</a></td>'; 16 echo '</tr>'; 17} 18?> 19</table>
となっており、Articles からの記事情報の取得はできています。
これで index ページに記事の一覧を表示させています。
目的
- hoge.com というアンテナサイトを構築する。
- hoge.com のトップページは、最新記事の一覧とサイト名が羅列されている。
- (↓蛇足)
- hoge.com/Sites/ で登録されているサイト一覧
- hoge.com/Sites/1 で Sites id 1 のサイトの最新記事一覧が表示される
cakephp のアソシエーションを利用してこのような記事リンクに対してサイト名の表示をしたいのが目的です。
http://kita-kore.com/ のようなアンテナサイトを想像してもらえるとわかりやすいかと思います。
ひと通りcakephp のチュートリアルを勉強した結果、アソシエーションの $hasMany
を使うのかなと想像しているのですが、どういう構築をしたらいいのかわかりません。
Controller を IndexesController.php としているのがそもそもナンセンスなのか
SitesController.php でやりたい処理を書くのか、というのも理解していません。
是非、ご回答よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/31 08:51
退会済みユーザー
2015/07/31 09:16
退会済みユーザー
2015/07/31 09:28 編集
2015/07/31 09:33
退会済みユーザー
2015/07/31 10:25 編集