Form :: select GET变量的默认值

时间:2015-02-12 00:09:41

标签: php forms laravel

我有以下表格:

            {{ Form::open(array('route' => 'get.index', 'method' => 'get')) }}
                {{ Form::label('order', 'Order by') }}
                {{ Form::select('order' , array('firstname' => 'First Name', 'lastname' => 'Last Name', 'state' => 'State')) }}
                {{ Form::submit('Order results') }}
            {{ Form::close() }}

我想使所选的选项与查询字符串中的order变量(如果有)对应。如果没有任何查询参数,它也应默认为第一选择。

这可能吗?

1 个答案:

答案 0 :(得分:1)

这个怎么样:

<?php 
    $availableOrders = ['firstname' => 'First Name', 'lastname' => 'Last Name', 'state' => 'State'];
    $selectedOrder = Input::get('order', null);
    $selectedOption = !is_null($selectedOrder) && array_key_exists($selectedOrder, $availableOrders) ? $selectedOrder : 'firstname';
?>
{{ Form::select('order', $availableOrders, $selectedOption); }}

这是非常自我描述的:

首先定义一系列可用的订单选项。

然后你得到一个必须从查询字符串中选择的那个。

如果它不为null并且存在具有这种数组键的选项 - 让我们选择它。如果没有 - 让我们选择第一个。

一旦你拥有了所有这些值,你只需使用blade和Form :: select输出它。

不要忘记这可以用更少的代码行完成,但这样整个想法非常明确。