Вот мой 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
$selectedId = ... // get the id from the session {{ Form::select('CompanyID', $comp, array($selectedId), array('id' => 'seCompanyID')) }}
Метод Form::select()
имеет следующие параметры:
$name
– name
атрибута 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
, в противном случае последнее выбранное значение может оставаться выбран.