我有以下表格:
{{ 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
变量(如果有的话)相对应的选项。如果没有任何查询参数,它也应该默认为第一个选项。
这可能吗?
这个怎么样:
<?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输出它。
不要忘记,这可以在更少的代码行中完成,但通过这种方式,整个想法非常清晰。