Выбор варианта Laravel – проблема по умолчанию

Вот мой Select Box, здесь будет загружена вся компания,

Но я хочу отобразить конкретную компанию по умолчанию, которая у меня есть в сеансе.

Вот мой код

$sessioncompany = 'ABCcompany' $comp[''] = 'Company'; @foreach($company_list as $row) <?php $comp[$row->CompanyID] = $row->CompanyName; ?> @endforeach {{ Form::select('CompanyID', $comp, '', array('id' => 'seCompanyID')); }} 

Что я пробовал

  {{ Form::select('CompanyID', $comp, '', array('id' => 'seCompanyID'), array(id=>$sessioncompany)); }} 

Но я закончил с неудачей

Какая ошибка я делаю и как я могу это исправить?

Примечание. Я хочу, чтобы это было в естественном методе laravel

Solutions Collecting From Web of "Выбор варианта Laravel – проблема по умолчанию"

 $selectedId = ... // get the id from the session {{ Form::select('CompanyID', $comp, array($selectedId), array('id' => 'seCompanyID')) }} 

Метод Form::select() имеет следующие параметры:

  • $namename атрибута HTML
  • (array) $list – список опций, пары ключ-значение для фактического значения => отображаемое значение
  • $selected – значение выбранного элемента
  • (array) $options – любые дополнительные атрибуты HTML, как и другие вспомогательные методы Form / HTML

Таким образом, третий $selected параметр $selected – это тот, который вы хотите передать своему значению сеанса. Копирование вашего примера и замена:

 {{ Form::select('CompanyID', $comp, Session::get('my_session_var'), array('id' => 'seCompanyID')); }} 

Где 'my_session_var' – это имя переменной сеанса, вы сохраняете значение элемента, который должен быть выбран по умолчанию.

Самое замечательное в использовании помощников формы Laravel – это то, что вы получаете «старый» вход бесплатно. Например, если вы установили здесь по умолчанию и пользователь изменил его, он отправит форму и будет ошибка проверки. Когда форма отображается повторно (при условии, что вы перенаправили обратно с return Redirect::back()->withInput(); ) значение, выбранное пользователем, а не ваше явное умолчание, будет установлено.

(Спасибо @JarekTkaczyk за то, что поставил меня прямо на старую входную вещь.)

Вы передаете неправильные параметры. максимальные параметры должны быть 4. Попробуйте следующее:

 {{ Form::select('CompanyID', array('default' => $sessioncompany)+$comp, 'default') }} 

Просто будьте осторожны, если вы находитесь на странице с формой с полем выбора, убедитесь, что при обновлении каждой страницы при тестировании вы полностью обновляете страницу без использования кеша – Ctrl + Shift + R , в противном случае последнее выбранное значение может оставаться выбран.