--> -->

skimemo


Laravel-20190112 のバックアップ(No.1)


LaravelのCollectiveで、以下のようなselect文を書きたかったのですが、思いもよらず苦労したのでメモです。

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
 
 
 
 
 
 
 
<select name='taro'>
  <option value="" hidden>選択してください</option>
  <option value="1">おこし</option>
  <option value="2">につけ</option>
  <option value="3">たきび</option>
  <option value="4">だんご</option>
</select>
  • イメージ

ポイントは、2行目のoptionタグのhidden属性です。
上記のCollectiveのマニュアルを見ても、属性の指定方法はほぼ書いてありません。
文法としては以下の通りなので、5番目のオプションにhiddenを指定します。

select.png
  1
  2
  3
  4
  5
  6
  7
{{Form::select(
    'taro',
    [''=>'選択してください',1=>'おこし',2=>'につけ',3=>'たきび',4=>'だんご'],
    (isset($taro)?$taro:null),
    [],
    [''=>['hidden']]
)}} 

6行目、[''=>['hidden']]と指定します。
value=''のoptionの属性として、配列で['hidden']を指定しています。個々のoptionに対する属性を配列で指定するというのがミソです。属性は複数指定可能なのでよく考えれば当たり前ですが、普通に一次元の配列で試行錯誤してはまってしまいました。