Home > CakePHP関連 > $scaffoldを試してみる(CakePHP修行 #009)

$scaffoldを試してみる(CakePHP修行 #009)

さて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/にアクセスしてみます。

scaf_1.gif

↑ キターーーーーーー・・・・Warningかよ・・・orz。

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

scaf_2.gif

↑ きれいになりました。

なーるほど、これは便利ですね。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の設計までいきたいと思います。

@taguchiをフォロー!
Twitterもやっています!
Posted on June 26th, 2007 and last modified on August 4th, 2009.

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 です。
やらないそうなので、大丈夫っぽいですが一応。

Comment Form
Remember personal info

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 ~ 百式管理人のライフハックブログ ~ [...]

Home > CakePHP関連 > $scaffoldを試してみる(CakePHP修行 #009)

最近の記事
カテゴリー別
過去記事一覧

Return to page top