如何在 laravel blade 表单中生成输入 select 并自定义其选项值?
How to generate input select in laravel blade form and customize its options value?
我正在尝试创建一个 laravel 表单,该表单的输入 select 从来自控制器的字符串数组生成。
如何手动设置选项的值?
在控制器中:
public function create()
{
$eventTypes = EventType::all()->lists('title');
return View::make('events.create')->with(compact('eventTypes'));
}
可见(blade):
{{ Form::label('eventType', 'Type') }}
{{ Form::select('eventType', $eventTypes, null, array('class'=> 'form-control')) }}
并且 select 创建为:
<select class="form-control" id="eventType" name="eventType">
<option value="0">Sport Competition</option>
<option value="1">Movie</option>
<option value="2">Concert</option>
</select>
我只想手动设置值。
选项中的值只是数组的键。 lists()
方法的第二个参数将让您选择一个字段用作键:
// use the 'id' field values for the array keys
$eventTypes = EventType::lists('title', 'id');
如果你想做一些比这更自定义的事情,你需要用你想要的 key/value 对手动构建你的数组。
编辑
正如@lukasgeiter在评论中提到的,不需要先调用all()
。
EventType::all()->lists()
将首先生成所有 EventType 对象的集合。然后它将在 Collection 对象上调用 lists()
,这意味着它将遍历该 Collection 以构建一个包含您请求的字段的数组。
EventType::lists()
将在查询构建器对象上调用 lists()
,这将只 select 两个请求的字段和 return 那些作为数组。它不会构建任何 EventType 对象(除非您 select 由模型 accessor 构建的字段)。
我正在尝试创建一个 laravel 表单,该表单的输入 select 从来自控制器的字符串数组生成。
如何手动设置选项的值?
在控制器中:
public function create()
{
$eventTypes = EventType::all()->lists('title');
return View::make('events.create')->with(compact('eventTypes'));
}
可见(blade):
{{ Form::label('eventType', 'Type') }}
{{ Form::select('eventType', $eventTypes, null, array('class'=> 'form-control')) }}
并且 select 创建为:
<select class="form-control" id="eventType" name="eventType">
<option value="0">Sport Competition</option>
<option value="1">Movie</option>
<option value="2">Concert</option>
</select>
我只想手动设置值。
选项中的值只是数组的键。 lists()
方法的第二个参数将让您选择一个字段用作键:
// use the 'id' field values for the array keys
$eventTypes = EventType::lists('title', 'id');
如果你想做一些比这更自定义的事情,你需要用你想要的 key/value 对手动构建你的数组。
编辑
正如@lukasgeiter在评论中提到的,不需要先调用all()
。
EventType::all()->lists()
将首先生成所有 EventType 对象的集合。然后它将在 Collection 对象上调用 lists()
,这意味着它将遍历该 Collection 以构建一个包含您请求的字段的数组。
EventType::lists()
将在查询构建器对象上调用 lists()
,这将只 select 两个请求的字段和 return 那些作为数组。它不会构建任何 EventType 对象(除非您 select 由模型 accessor 构建的字段)。