読者です 読者をやめる 読者になる 読者になる

終電23時15分って早くね?

都内のIT企業で働くカラオケ大好きエンジニアの雑記

Laravel チェックボックス・ラジオボタンとか周りの処理が甘い問題[解決済]

Laravel PHP PHPフレームワーク

Laravelのフォーム周りで処理が甘いなーって部分があった。
特にチェックボックス・ラジオボタン

ラジオボタンで、

<input id="men" name="sex" type="radio" value="1"> <label for="men">男</label>
<input id="women" name="sex" type="radio" value="2"> <label for="women">女</label>

みたいな、name属性が同じラジオボタンを、

{{ Form::radio('sex', '1', false, array('id' => 'men')) }} {{ Form::label('men', '男') }}
{{ Form::radio('sex', '2', false, array('id' => 'women')) }} {{ Form::label('women', '女') }}

で生成して、フォームをサブミットした場合に、
どちらを選択したか?ってのがうまくチェックに反映しないし、
ソースコードを見てみると、

<input id="men" name="sex" type="radio" value="1"> <label for="men">男</label>
<input id="women" name="sex" type="radio" value="1"> <label for="women">女</label>

とかなってて、
両方とも value="1" になってたり。
もうひっちゃかめっちゃかでした。

○同じようなので悩んでいた人もいたようで・・・
http://questiontrack.com/laravel-4---inputold-for-radio-buttons-1077421.html

で、実際にフォームのHTMLを生成している、

/vendor/laravel/framework/src/Illuminate/Html/FormBuilder.php

を覗いてみたら、やはりプログラム自体がよろしくないみたい。。
で、何とかそのあたりのソースコード直すかー
と思ってしばらく試行錯誤してたんですが、ふと、

「ひょっとしたら最新版で直ってんじゃね・・・?」

と思って最新に替えたら案の定直っていた!!

githubを眺めている辺りだと、
https://github.com/laravel/framework/commit/d9872c3a537f902545057af778d9afb543b044df
ここら辺で修正対応が入ったようだーー!

困ったら最新のソースを確認するのも大事だな。と思った次第でした!