副題:kitcometalsから値段を持ってくる(3)
完成しただけで不満はいっぱいあるよ!ということで改良編。
環境
・Windows7Pro
・Xampp 1.8.1(英語) apacheとmysqlを稼働させておく。
・fuelphp 1.5.3
前回は"C:\xampp\htdocs\kitco\fuel\app\views\kitco_form.php"に数字を取りに行く処理を書いたけど、これだとEditの時等のように必要がない時であっても_formが呼び出されるたびに再計算しに行くので読み込みが遅くなるという話があり(1秒程度ですが)。こんなスマートじゃない話があってたまるか!「俺はエレガントに解決するんだ」とやり直しを決意。
余談ですが高校の時の数学教師に「問題はエレガントに解決するものだ」と教えられたせいでこんな子になりました。
そもそもこれは本来"C:\xampp\htdocs\kitco\fuel\app\views\kitco\create.php"でやればいいんだろうと思って打ち込んだものの、どうやら値を引きついでくれないらしいのでとり会えずということでフォームの表示直前で処理したという話。つまるところコントローラ側で計算して引き渡せばいいんじゃないのと。
いろいろ調べた結果、
http://core-tech.jp/gijutsublog/2012/07/18/29
の方法で実装。具体的には
1.Controllerのaction_create()で計算する(詳細略)
2.データを$dataに配列として入れる
$data = array();
$data['value'] = $value;
$data['daybefore'] = $daybefore;
3.View::forge('kitco/create',$data);
して引き継がせる
4.create.phpでrender('kitco/_form', $__data);
して再引き継ぎ
3までの情報はかなり落ちてるんだけど、4の情報が抜け落ちてるのか古くて対応してないのかで正解にたどり着くまで大分時間を食いました……が、コレで必要な時だけ外部アクセスするようになっていろいろな意味で良い感じになるかと。