Postモデルの作成
app/Model/Post.php ファイルを作成する<? php
class Post extends AppModel {
}
?>
Postsコントローラの作成
app/Controller/PostsController.php ファイルを作成する<?php
class PostsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
$this->set('posts', $this->Post->find('all'));
}
}
?>
Postビューの作成
app/View/Posts/index.ctp ファイルを作成する<h1>Blog posts</h1>
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Created</th>
</tr>
<!-- ここから、$posts配列をループして、投稿記事の情報を表示 -->
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php echo $this->Html->link($post['Post']['title'],
array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>
</td>
<td><?php echo $post['Post']['created']; ?></td>
</tr>
<?php endforeach; ?>
<?php unset($post); ?>
</table>
この時点でブラウザで表示してみる
http://localhost/cakephp/posts/
こんな感じのページが表示される
ヘッダーとフッターになにやら表示されているが、これはどこかにテンプレートがあるのだろう
※デフォルトのテンプレートはこれ app/View/Layouts/default.ctp
この部分に個別Viewが展開される
<?php echo $this->fetch('content'); ?>
この部分に個別Viewが展開される
<?php echo $this->fetch('content'); ?>
チュートリアルはまだまだ続くが、ここまでで基本的なCakePHPの開発の流れはわかったのでチュートリアルはここで一旦終了する
PHP自体も初心者だしCakePHPの理解もまだまだなので、使いこなすには相当時間がかかりそうだ
まとめ
・命名規約が大事クラス名、ファイル名だけではなく、データベーステーブル名も規約に従う必要がある
いや、規約に従わなくてもできる方法はあるはずだが、どこまで従ったら一番幸せになれるのか
・MVCのMって本当に必要?
他のMVCフレームワークもそうだが、どうもM(モデル)に馴染めない
このブログチュートリアル程度ならモデルを使ったほうが便利かもしれないが、自分の経験上、大抵のシステムでは、もっと複雑なリレーションが必要になるし、サブクエリも多用することが多い
モデルで実装できるのだろうが、SQL書いたほうが楽だし早い
モデルを使ったほうが良いという決定的な理由がほしい・・・
なので、個人的にはVCだけで作りたい(笑)
0 件のコメント:
コメントを投稿