条件によってクラス属性を追加し複数設定したい場合あったのですが、実装につまったので備忘録にしたいと思います。
<div class="col-sm-7">
{{ Form::select('content', ['hoge', 'hogehoge'], old('content'), ['class' => 'form-control ' . (is_null($hoge) && empty($hogehoge) ? 'form-color' : '')]) }}
</div>
解説
デフォルトのclass属性にはform-controlというクラス名が設定されている。
そこに三項演算子の結果がtrueならば、form-colorというクラス名を追加している。
三項演算子の結果は、「文字列連結」しているところがミソなのではないかと考えている。
この実装が初めは思いつかず苦労しました。。。
文字列連結は基礎中の基礎ではありますが、すぐにはこの実装が思いつきませんでした。。。
文字列連結した結果は以下の状態になる
'class' => 'form-control form-color'
また、文字列連結する際は、デフォルトのクラス名の後に半角スペースを入れる必要があります。
上記から分かるようにclassを複数設定する時には半角スペースを入れていますよね。
'form-control '