- 2007-06-26 (Tue) 0:31
- CakePHP関連
さてCakePHPのお勉強。前回までのあらすじはこちら。
» CakePHP修行! アーカイブ | i d e a * i d e a
さて前回「bake.php=面倒」ということがわかったので(かなり個人的な主観)、今回は$scaffoldをControllerに足す方法を試します。
■ 下準備
試しにやるだけなのでUsersモデルだけでやってみます。イメージでは作業は以下の通り。
- /app/models/user.phpをつくる
- /app/controllers/users_controller.phpを作って$scaffoldを追加。
- /users/にアクセスすれば追加・削除・編集の画面ができているはず!(かな?)
では期待どおりになるかどうか・・・ドキドキしながらやってみます。
■ Usersモデルを作成
/app/models/user.phpを次のように作成。モデルは単数か、覚えないと。まず一つを定義するから、とか覚えておこう。
<?php
class User extends AppModel
{
var $name = 'User';
}
↑ こんな感じ。最後の「?>」は書かない派ですw。
■ コントローラーをつくるぞ
/app/controllers/users_controller.phpを作ります。こちらは複数ね。
<?php
class UsersController extends AppController
{
var $name = 'Users';
var $scaffold;
}
さぁ、これでいいのでしょうかねぇ・・・。できたのか試してみます。
■ /usersにアクセスしてみる
さて・・・と、http://www.codexcode.com/users/にアクセスしてみます。

↑ キターーーーーーー・・・・Warningかよ・・・orz。
前回/app/tmpに777のPermissionを与えましたが、これ、下位フォルダもそうしないとだめっぽかったっすね(つか、当然ですね・・・)。「chmod -R 777 /app/tmp」で解決。

↑ きれいになりました。
なーるほど、これは便利ですね。Viewを書く手間が一気に減りました。うーん、便利かも。
それからマニュアルによるとViewのカスタムも簡単なようです。しかもすべてのモデルに共通するViewも作れるみたい。
各モデルごとなら以下を追加。
/app/views/users/scaffold/index.scaffold.thtml /app/views/users/scaffold/edit.scaffold.thtml /app/views/users/scaffold/show.scaffold.thtml /app/views/users/scaffold/new.scaffold.thtml
すべてのモデルに共通するViewなら以下を追加。
/app/views/scaffold/index.scaffold.thtml /app/views/scaffold/edit.scaffold.thtml /app/views/scaffold/show.scaffold.thtml /app/views/scaffold/new.scaffold.thtml
ちょっと試してみようかと思いましたが、まぁ、将来的に必要になったらやればいいや、ということでScaffoldの実験はこれでおしまい。とりあえずuser_controller.phpから$scaffoldを外しておきます。
さて、やっぱりViewはカスタムで一つずつ作ってみたいので、次回はいよいよ画面のモックアップからViewの設計までいきたいと思います。
Comments:2
- 高田 07-06-26 (Tue) 7:57
-
CakePHPの記事ドキドキしながら読ませていただいてます。
chmodでサブフォルダ含めて再帰的に処理するのであれば、「chmod -R 777 [hoge]」ではなく「chmod -R a+w [hoge]」の方が良いかもです。a = All User
+ = 追加
w = Write権限「-R」した場合、フォルダだけでなくファイルも処理しちゃうので、いらないファイルに実行権限付くのもなぁ〜って場合にお使いくださいませ。
- jakk 07-06-26 (Tue) 9:55
-
はじめまして。
ちょっとだけ
以前自分もscaffoldのViewをちょっとajax風にしたときがあって、そのときにきづいたんですが、
リファレンスでは確かに 「index.scaffold.thtml」
に という記述になっていますが、正しくは scaffold.****.thtml です。
やらないそうなので、大丈夫っぽいですが一応。
Trackbacks:1
- Trackback URL for this entry
- http://www.ideaxidea.com/archives/2007/06/scaffoldcakephp_009.html/trackback
- Listed below are links to weblogs that reference
- $scaffoldを試してみる(CakePHP修行 #009) from IDEA*IDEA ~ 百式管理人のライフハックブログ
- pingback from 「CakePHP修行」を追う #4 - ElectronicBrain is eating BreakFast 09-04-07 (Tue) 18:59
-
[...] $scaffoldを試してみる(CakePHP修行 #009) – IDEA*IDEA ~ 百式管理人のライフハックブログ ~ [...]


























