FuelPHP、fieldsetクラスを使ってフォームから受け取った値をデータベースに登録する処理を書いています。
OrmモデルとFieldsetクラスを利用してフォーム生成をして、フォーム要素や検証規則はModelに記述しています。
例えば下記のコードで、item_cdという項目がint型のNullは許可されているとして、フォームから何も入力せずに送信すると’’(空文字列)を受け取ります。
このままSaveメソッドを実行するとエラーになるので、値を受け取ってから空文字の場合はnullにするなどの処理をしないといけません。
こういう処理はモデルに値を設定する時(下のコードでは$item->item_cd = $fields['item_cd'];)でするものなのでしょうか?
モデルの$_propertiesには型などを指定しているので、自動的にうまくデータベースに保存できるように変換するような機能はありませんか?
フレームワーク(FuelPHP)にそういった便利な機能が備わっているのか、それとも自前で処理しないといけないのかを知りたいです。
PHP
1public function action_create() 2{ 3 $item = Model_Item::forge(); 4 $fieldset = Fieldset::forge()->add_model('Model_Item'); 5 6 $fieldset->populate($item, true); 7 8 if($fieldset->validation()->run()){ 9 10 $fields = $fieldset->validated(); 11 $item = Model_Item::forge(); 12 $item->item_cd = $fields['item_cd']; 13 14 if($item->save()){ 15 Response::redirect('item/index'); 16 } 17 } 18}
PHP初心者でフレームワークも初めてなのでうまく質問できませんがよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/05 13:55
退会済みユーザー
2016/02/11 06:28
2016/02/13 01:54