たなしょのメモ

日々勉強していることをつらつらと

久しぶり。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>になるんだ。すごく便利。