Laravel-5 how to populate select box from database with id value and name value(Laravel-5 如何使用 id 值和名称值从数据库中填充选择框)
问题描述
我想使用 illuminatehtml 创建一个如下所示的选择框:
在我的控制器中我试过这个:
公共函数create(){$items = Items::all(['id', 'name']);return view('prices.create', compact('id', 'items'));}
在我看来:
{!!表格::标签('项目', '项目:') !!}{!!Form::select('item_id', $items, null, ['class' => 'form-control']) !!}
问题是显示实体的所有信息而不是 $item->name
.
Laravel 提供了一个带有 list() 函数的查询构建器
在你的情况下,你可以替换你的代码
$items = Items::all(['id', 'name']);
与
$items = Items::lists('name', 'id');
此外,您也可以将其与其他查询生成器链接.
$items = Items::where('active', true)->orderBy('name')->lists('name', 'id');
来源:http://laravel.com/docs/5.0/queries#selects
<小时>Laravel 5.2 更新
非常感谢@jarry.正如你提到的,Laravel 5.2 的功能应该是
$items = Items::pluck('name', 'id');
或
$items = Items::where('active', true)->orderBy('name')->pluck('name', 'id');
ref: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0 -- 查看弃用列表
I want to create a select box like the one below using illuminatehtml :
<select>
<option value="$item->id">$item->name</option>
<option value="$item->id">$item->name</option>
</select>
In my controller I tried this:
public function create()
{
$items = Items::all(['id', 'name']);
return view('prices.create', compact('id', 'items'));
}
And in my view this:
<div class="form-group">
{!! Form::Label('item', 'Item:') !!}
{!! Form::select('item_id', $items, null, ['class' => 'form-control']) !!}
</div>
The issue is that instead of $item->name
is displaying all the info of the entity.
Laravel provides a Query Builder with lists() function
In your case, you can replace your code
$items = Items::all(['id', 'name']);
with
$items = Items::lists('name', 'id');
Also, you can chain it with other Query Builder as well.
$items = Items::where('active', true)->orderBy('name')->lists('name', 'id');
source: http://laravel.com/docs/5.0/queries#selects
Update for Laravel 5.2
Thank you very much @jarry. As you mentioned, the function for Laravel 5.2 should be
$items = Items::pluck('name', 'id');
or
$items = Items::where('active', true)->orderBy('name')->pluck('name', 'id');
ref: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0 -- look at Deprecations lists
这篇关于Laravel-5 如何使用 id 值和名称值从数据库中填充选择框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel-5 如何使用 id 值和名称值从数据库中填充选
基础教程推荐
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- PHP 守护进程/worker 环境 2022-01-01