У меня этот код работает с L5.0. С последним обновлением до L5.3.30 + зависимости он кажется сломанным. Может быть, я сделал что-то не так с самого начала?
Вот упрощенный код:
{!! Form::select('currency', ['USD'=>'USD: *escape code here*'],
null, ['class'=>'form-control', "required", 'id'=>'currency']) !!}
В течение последних нескольких лет этот код возвращал поле выбора с таким текстом: «USD: $».
После обновления Composer до L5.3.30 на всех серверах (test, dev, prod) теперь вместо этого возвращается символ html: «USD: здесь управляющий код».
Я временно (и успешно) исправил это, используя:
<select name = 'currency' id="currency" required class="form-control">
@foreach (\Helper::currency() as $k=>$v)
<option value="{{$k}}">{!! $v !!}</option>
@endforeach
</select>
Приведенный выше код имеет escape-код для валюты в переменной $v и правильно отображается в поле выбора.
Пожалуйста, помогите - это ломает довольно много форм в моем приложении.
Спасибо.
РЕДАКТИРОВАТЬ: я все еще могу правильно отображать неэкранированный текст, используя {!! !!} где-либо еще. Кажется, это влияет только на элементы Form::select(). Поэтому я начинаю думать, что проблема не в побеге лезвия Laravel, а в последней версии функции Laravel Collective Form.
РЕШЕНИЕ: я сообщил об этом команде Laravel Collective Dev, но, по-видимому, это НЕ было отменено. См. https://github.com/LaravelCollective/html/issues/296 для последних .