スキャフォールドは足場という意味で、これを生成することでORMの機能に加えてテーブル管理のコントローラとビューまでコマンドひとつで出来てしまうという、恐ろしく便利なものです。

 

さっそく試してみましょう。

ここではnameフィールドとageフィールドを持つuserテーブルを作成することとします。

$ oil g scaffold user name:varchar[32] age:int

fuel/app/classes/model/user/phpから見ていきます。

ORMパッケージのModelを継承しているのはORMモデル生成の場合と同様ですが、validateメソッドが追加されています。このメソッドはコントローラから呼び出され、データのバリデーション条件を返します。

また、マイグレーションファイルもモデル生成時と同じくfuel/app/migrationsディレクトリに生成されています。

 

次に、fuel/app/classes/controller/user.phpを見てみましょう。

メソッド 処理内容
action_index 一覧表示
action_view 個別データ表示
action_create 新規追加
action_edit 変更
action_delete 削除

action_createとaction_editでは、入力されたデータがモデルのvalidateから得た規定に合っているかを確認しています。

fuel/app/views/userディレクトリにはビューのコードが生成されています。

template.php ページのテンプレート
_form.php 入力フォーム
index.php  一覧表示
view.php 個別表示
create.php 新規追加
edit.php 変更

コードが生成されているのを確認したらデータベースに反映させます。

$ oil r migrate

 

それではページを表示してみましょう。ブラウザでpublic/usersを開きます。

データなし

データ一覧ページが表示されます。

まだデータはありません。

 

Addボタンをクリックすると新規追加ページが表示されます。

データを入力

データを入力したらSaveボタンをクリックします。

データが追加されている

データ一覧ページに戻ります。

入力したデータが追加されています。

 

次にViewをクリックしてデータを表示してみます。

選択したデータを表示

選択したデータが表示されます。

 

Editをクリックしてデータを変更してみます。

データを変更する

変更してSaveボタンをクリックすると、再び一覧ページが表示されます。

データが変更されている

変更が反映されているのがわかります。

 

最後にDeleteをクリックして削除してみます。

データが削除されている

一覧が表示され、データは削除されています。

 

このように、スキャフォールドを使うことで簡単にデータベースアプリケーションの基本機能を構築することができます。