拉拉维尔选项选择 - 默认问题


Laravel Option Select - Default Issue

这是我的选择框,这里将加载所有公司,

但是我想将特定公司显示为默认选择的公司,我在会话中将其选中。

这是我的代码

$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)); }}

但我以失败告终

正在犯什么错误,我该如何解决?

注意:我想要它在本地拉拉维尔方法中

$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 属性,如其他表单/HTML 帮助程序方法

因此,第三个参数$selected是要将会话值传递给的参数。复制示例并替换:

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

其中'my_session_var'是会话变量的名称,用于存储默认情况下应选择的项目的值。

使用Laravel的表单助手的好处是您可以免费获得"旧"输入。例如,如果您在此处设置默认值,并且用户对其进行了更改,则提交表单并出现验证错误。当表单重新显示时(假设您用 return Redirect::back()->withInput(); 重定向回),将设置用户选择的值,而不是显式默认值。

(感谢@JarekTkaczyk让我正确处理旧的输入内容。

你传递了错误的参数.max参数应该是 4。试试这个:

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

,如果您在带有选择框的表单的页面上,请确保在测试时每次刷新页面时,在不使用缓存的情况下进行整页刷新 - Ctrl + Shift + R ,否则最后选择的值可能会保持选中状态。