Laravel:从数据库填充表单下拉列表

时间:2017-03-24 13:35:40

标签: php mysql laravel laravel-5.3

第一个Laravel项目。

我想创建一个从mysql数据库填充的表单下拉列表。我在文档中找到了这个:

Form::select('size', array('L' => 'Large', 'S' => 'Small'))

我试过这个:

{{Form::select('size', array(
                @foreach ($suppliers as $supplier)
                $supplier->id => $supplier->name
                @endforeach
))
}}

但是我遇到语法错误:

   e34a9587ee23853b6d4c489cc0ed13515fad9c06.php行中的ErrorException   23:解析错误:语法错误,意外'<'期待')' (视图:   /var/www/html/project/laravel/leltar/resources/views/invoice.blade.php)

我错了什么?

2 个答案:

答案 0 :(得分:3)

Pluck从laravel版本5.3返回一个集合,答案是错误的,它不会显示正确的选择框!

这是正确的解决方案!

$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');

答案 1 :(得分:2)

试试pluck method

Form::select('size', $suppliers->pluck('name', 'id')->all())