如何从数据库 laravel 5.x 填充下拉列表
How to populate dropdown from database laravel 5.x
控制器端:
$regs = Model::all('id','name');
return view('aview',compact('regs'));
视图:
{{ Form::select('id', $regs) }}
下拉列表得到呈现和填充,但显示 JSON objects
,例如 {"id:1","name: Aname"}
,而不是显示 Aname 并将 post 值设置为 1
您可以这样填充:
{!! Form::select('id', $regs->lists('name', 'id'), null, ['class' => 'form-control']) !!}
试试这个
在你的控制器中
$regs = Model::pluck('name','id');
保持观点不变
希望这会奏效
Form::select
接受四个参数:
public function select($name, $list = [], $selected = null, $options = []);
- html 字段的名称
- 选项列表
- 所选值
- html 个属性数组
您可以使用
生成列表
$regs = Model::all('id','name');
$plucked = $regs->pluck('name', 'id');
// $plcuked = ['id1' => 'name1', 'id2' => 'name2' ...]
blade 代码应如下所示
{{ Form::select('name', $plucked, null, ['class' => 'form-control']); }}
我可能会让这个问题变得有点复杂,但我认为值得使用该插件。
您可以使用非常流行的插件 - Select2。 jQuery 的这个插件可以帮助您从服务器获取数据,并在几分钟内将获取的数据填充到我们的下拉列表中。你的代码是这样的。
// Code in your Controller Method
$regs = Model::all();
$data = [];
foreach($regs as $reg) {
$data[] = [
'id' => $reg->id,
'text' => $reg->name
];
}
return json_encode(['items' => $data]);
// Code in your desired View
<select id="select_items"></select>
// Code in js
$('#select_items').select2({
ajax: {
url: '/example/api', // <--------- Route to your controller method
processResults: function (data) {
return {
results: data.items
};
}
}
});
您还可以使用此插件集成搜索选项,因为它可以帮助您根据搜索关键字获取结果(有关更多信息,请参阅 Select2 Examples)。希望这可以帮助您解决问题。
控制器端:
$regs = Model::all('id','name');
return view('aview',compact('regs'));
视图:
{{ Form::select('id', $regs) }}
下拉列表得到呈现和填充,但显示 JSON objects
,例如 {"id:1","name: Aname"}
,而不是显示 Aname 并将 post 值设置为 1
您可以这样填充:
{!! Form::select('id', $regs->lists('name', 'id'), null, ['class' => 'form-control']) !!}
试试这个
在你的控制器中
$regs = Model::pluck('name','id');
保持观点不变
希望这会奏效
Form::select
接受四个参数:
public function select($name, $list = [], $selected = null, $options = []);
- html 字段的名称
- 选项列表
- 所选值
- html 个属性数组
您可以使用
生成列表$regs = Model::all('id','name');
$plucked = $regs->pluck('name', 'id');
// $plcuked = ['id1' => 'name1', 'id2' => 'name2' ...]
blade 代码应如下所示
{{ Form::select('name', $plucked, null, ['class' => 'form-control']); }}
我可能会让这个问题变得有点复杂,但我认为值得使用该插件。
您可以使用非常流行的插件 - Select2。 jQuery 的这个插件可以帮助您从服务器获取数据,并在几分钟内将获取的数据填充到我们的下拉列表中。你的代码是这样的。
// Code in your Controller Method
$regs = Model::all();
$data = [];
foreach($regs as $reg) {
$data[] = [
'id' => $reg->id,
'text' => $reg->name
];
}
return json_encode(['items' => $data]);
// Code in your desired View
<select id="select_items"></select>
// Code in js
$('#select_items').select2({
ajax: {
url: '/example/api', // <--------- Route to your controller method
processResults: function (data) {
return {
results: data.items
};
}
}
});
您还可以使用此插件集成搜索选项,因为它可以帮助您根据搜索关键字获取结果(有关更多信息,请参阅 Select2 Examples)。希望这可以帮助您解决问题。