Laravel选项选择 - 默认问题

时间:2014-11-18 09:33:01

标签: php forms laravel laravel-4

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

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

这是我的代码

$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方法

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

Form::select()方法具有以下参数:

  • $name - name HTML属性
  • (array) $list - 选项列表,实际值的键值对=&gt;显示值
  • $selected - 所选项目的值
  • (array) $options - 任何额外的HTML属性,按照其他表单/ HTML帮助程序方法

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

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

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

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

(感谢@JarekTkaczyk让我把它放在旧输入的东西上。)

答案 2 :(得分:1)

您传递了错误的参数。最大参数应为4.试试这个:

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

答案 3 :(得分:0)

请注意,如果您使用带有选择框的表单进入页面,请确保在测试时刷新每个页面,而不使用缓存进行整页刷新 - Ctrl + Shift + R,否则最后选择的值可能仍处于选中状态。