いくつかのテーブルを組み合わせて1つのフォームを作る際に、Fieldsetオブジェクトにadd_model()
で複数のModelを追加するとcreated_atやupdated_atが重複してしまいNoticeが発生してしまいます。
エラーを発生させないためにadd_model()
してから不要なフィールドの削除→次のadd_model()
という手順を踏みたいところですがフィールドを削除するメソッドが見つかりません。
フィールドをunset
しようにもアクセス制限があるのでクラスを拡張しないと削除することができませんでした。
###質問したいこと
Fieldsetオブジェクトのadd_model()
でフィールドとして取り込まれないようにModelの$_properties
で設定可能かどうか
PHP
1class Model_Item extends \Orm\Model 2{ 3 protected static $_properties = array( 4 'id', 5 'item_name' => array( 6 'data_type' => 'varchar', 7 'label' => '商品名', 8 'validation' => array('required','max_length'=>array(300)), 9 'form' => array('type' => 'text'),), 10 'created_at' => array('form' => array('type' => false ),), 11 'updated_at' => array('form' => array('type' => false ),) 12 ); 13//以下省略
複雑なフォームを作る場合はadd_model()
を使わずに一つ一つフィールドを追加していますよ、といったご意見でも構いません。Fieldsetオブジェクトのメリットの一つとしてValidationルールなどをModelに集めて記述できるのはとても便利な機能だと思いました。皆さんどれくらい活用されているのか知ることができれば幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/10 05:09
2016/03/10 05:17