手动添加行到 eloquent 结果 Laravel 4.2
Add row manually to eloquent result in Laravel 4.2
我正在使用 Laravel 4.2 并使用以下代码获取所有位置:
$locations = Location::all();
此位置随后显示在 select 框中。我怎样才能在结果中添加一个额外的行,以便在 select 框中显示一个空的第一个选项。
那么选项应该是:
- 选择一个位置
- 位置 1
- 位置 2
- ...
我只想在 $locations 的结果中添加一个额外的项目。
提前致谢
您应该查看集合的 put
方法:
https://laravel.com/docs/5.6/collections#method-put
此方法在 4.2 中不可用。您应该制作一个自定义 Collection class 并通过覆盖 newCollection
方法在您的模型中使用它。 https://laravel.com/docs/4.2/eloquent#collections
您可以使用:
{!! Form::select('location', ['' => 'Select your location'] + $locations, null , ['class' => 'form-control']) !!}
更新视图。在 Laravel 5 中有 attribute accessors 可以在您的 eloquent 集合中附加一个额外的字段。
很少有其他方法可以做到这一点:
$locations[null] = 'choose a location';
Form::select('location', $locations);
Form::select('location',[null=>'Please Select'] + $locations);
另一种方法是循环遍历结果并更新它。使用 json_decode()
或 'toArray()` 将结果转换为数组格式。
否则,您必须将 choose a location
存储为 locations
table 中的第一行值(我知道这不适合要求)。
我正在使用 Laravel 4.2 并使用以下代码获取所有位置:
$locations = Location::all();
此位置随后显示在 select 框中。我怎样才能在结果中添加一个额外的行,以便在 select 框中显示一个空的第一个选项。
那么选项应该是:
- 选择一个位置
- 位置 1
- 位置 2
- ...
我只想在 $locations 的结果中添加一个额外的项目。
提前致谢
您应该查看集合的 put
方法:
https://laravel.com/docs/5.6/collections#method-put
此方法在 4.2 中不可用。您应该制作一个自定义 Collection class 并通过覆盖 newCollection
方法在您的模型中使用它。 https://laravel.com/docs/4.2/eloquent#collections
您可以使用:
{!! Form::select('location', ['' => 'Select your location'] + $locations, null , ['class' => 'form-control']) !!}
更新视图。在 Laravel 5 中有 attribute accessors 可以在您的 eloquent 集合中附加一个额外的字段。
很少有其他方法可以做到这一点:
$locations[null] = 'choose a location'; Form::select('location', $locations);
Form::select('location',[null=>'Please Select'] + $locations);
另一种方法是循环遍历结果并更新它。使用 json_decode()
或 'toArray()` 将结果转换为数组格式。
否则,您必须将 choose a location
存储为 locations
table 中的第一行值(我知道这不适合要求)。