久しぶり。fuelphpでなんか作る。
本当に久しぶり
ちょっと色々とゴタゴタしていて全然ブログが更新できなかった。
今は新しい会社でfuelphpでサイトの開発や保守運用をやっている。
会社で使っているfuelphpでなにか作ってみようと思う。
1万時間時計
でも作ろうかな。
テーブルのカラムはこんな感じにしようと思う。
id int(11) work varchar(100) time int(11) created_at timestamp updated_at timestamp
駆け出しエンジニアのポートフォリオにも及ばないカラム量....
timeカラムがintの理由は1万時間から引き算したときに楽そうだから。
いざ実装
scafoldingコマンドを入力したのでとりあえずコンテナの中に入る。
(コンテナに入らずコマンドを打ってもエラーで落ちる。)
docker exec -i -t fuel_app_php_1 bash
入ったらoilが配置されているディレクトリまで行ってscafoldコマンド叩く。
# php oil g scaffold million work:varchar[30] time:int[11] Creating migration: /var/www/fuel_app/fuel/app/migrations/004_create_millions.php Creating model: /var/www/fuel_app/fuel/app/classes/model/million.php Creating controller: /var/www/fuel_app/fuel/app/classes/controller/million.php Creating view: /var/www/fuel_app/fuel/app/views/million/index.php Creating view: /var/www/fuel_app/fuel/app/views/million/view.php Creating view: /var/www/fuel_app/fuel/app/views/million/create.php Creating view: /var/www/fuel_app/fuel/app/views/million/edit.php Creating view: /var/www/fuel_app/fuel/app/views/million/_form.php
idとcreated_at、updated_atは自動で作成されるから入力しなくていい。
created_atとupdate_atはtimestamp型ではないので替えたい人は替えたほうがいい。
「fuel/app/migrations/004_create_millions.php」をこのように書き換える。
'created_at' => array('type' => 'timestamp', 'default' => \DB::expr('CURRENT_TIMESTAMP')), 'updated_at' => array('type' => 'timestamp', 'default' => \DB::expr('CURRENT_TIMESTAMP')),
これでカラムがタイムスタンプ型となりデフォルトでCURRENT_TIMESTAMPを取得する。
設定ができたのでこれでindex.phpをいじって画面を作っていく。
ここから先はメモ書きなので流し読む程度に。
htmlクラスが便利だ。
<?php echo Html::anchor('million/create', 'ワークを登録する', array('class' => 'btn btn-success')); ?>
Html::anchor('X','Y')で、
<a href="X">Y</a>になるんだ。すごく便利。