我有以下表格:
{{ 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
变量(如果有)对应。如果没有任何查询参数,它也应默认为第一选择。
这可能吗?
答案 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输出它。
不要忘记这可以用更少的代码行完成,但这样整个想法非常明确。