Symfony2今日もまたコーディング。Codingが大好きだから。Symfony2のフォームの仕組みはけっこう複雑だ。プロパティとのひもづけ関与するクラス、メソッドも多いし、ルールも多い。効率よくトラブルなくフォームを扱うためにはいろいろ必要、というのは、次第に分かってはくるものの、学習コストの高さはいかんともしがたい。融通を効かせたい場面もある動的に生成、というほど大げさな話でなかったとしても、場合に応じてフォームの仕様に融通を効かせたい場面はある。プラグインによって、これをAコースとし、フォームを減らしたBコースCコースを作りたい。Bコースでは'hoge'、Cコースでは入力必須項目はなし。display:noneにすることで使い分けようとする。ところがSymfony2は頑強にこれを認めない(ように見える)。Cコースでフォームを保存しようとすると画面が動かない。調べるとdisplay:noneにしたフォームがrequiredで「値がないので保存できない」ことがわかる(しかもdisplay:noneなのでエラー表示も画面に出ない!)それでは、とrequiredを外そうとするとできない。値はnull不可になっている。データベースに手を加えるか、コアコードに手を加えるかしなければならない。それが無理なら、ダミーの値を入れるとか。たしかにデータベースがnull不可なので筋は通っている。プラグイン側から手を加えていくと、データベースからHTMLまで、全長を把握して設計しないといけないし、フォームのルールに縛られるので、初心者は戸惑う。エンジニア文章、写真、デザイン、コーディングまで一通りこなす自走式フルスタックブロガー。読者になる@mogami74をフォローはてなブログをはじめよう!mogami74さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。