Laravel:从数据库填充表单下拉列表
Laravel: Populate Form dropdown from database
第一个 Laravel 项目。
我想制作一个从 mysql 数据库填充的表单下拉列表。我在文档中找到了这个:
Form::select('size', array('L' => 'Large', 'S' => 'Small'))
我试过这个:
{{Form::select('size', array(
@foreach ($suppliers as $supplier)
$supplier->id => $supplier->name
@endforeach
))
}}
但是我遇到了语法错误:
ErrorException in e34a9587ee23853b6d4c489cc0ed13515fad9c06.php line
23: Parse error: syntax error, unexpected '<', expecting ')' (View:
/var/www/html/project/laravel/leltar/resources/views/invoice.blade.php)
我做错了什么?
试试 pluck method:
Form::select('size', $suppliers->pluck('name', 'id')->all())
从 laravel 版本 5.3 中提取 returns 一个集合,答案是错误的,它不会正确显示 select 框!
这是正确的解决方案!
$suppliers = Supplier::pluck('name', 'id')->toArray();
在视图中这样称呼它:
{!! Form::select('supplier', $suppliers, null, ['class' => 'form-control']) !!}
Laravel 5.5
更新
刚刚对此进行了测试,在 Laravel 5.5 pluck() 中无需像这样附加 toArray() 即可工作:
$tags = Tag::pluck('name', 'id');
或者对于这个问题;
$tags = Supplier::pluck('name', 'id');
第一个 Laravel 项目。
我想制作一个从 mysql 数据库填充的表单下拉列表。我在文档中找到了这个:
Form::select('size', array('L' => 'Large', 'S' => 'Small'))
我试过这个:
{{Form::select('size', array(
@foreach ($suppliers as $supplier)
$supplier->id => $supplier->name
@endforeach
))
}}
但是我遇到了语法错误:
ErrorException in e34a9587ee23853b6d4c489cc0ed13515fad9c06.php line 23: Parse error: syntax error, unexpected '<', expecting ')' (View: /var/www/html/project/laravel/leltar/resources/views/invoice.blade.php)
我做错了什么?
试试 pluck method:
Form::select('size', $suppliers->pluck('name', 'id')->all())
从 laravel 版本 5.3 中提取 returns 一个集合,答案是错误的,它不会正确显示 select 框!
这是正确的解决方案!
$suppliers = Supplier::pluck('name', 'id')->toArray();
在视图中这样称呼它:
{!! Form::select('supplier', $suppliers, null, ['class' => 'form-control']) !!}
Laravel 5.5
更新刚刚对此进行了测试,在 Laravel 5.5 pluck() 中无需像这样附加 toArray() 即可工作:
$tags = Tag::pluck('name', 'id');
或者对于这个问题;
$tags = Supplier::pluck('name', 'id');