手动添加行到 eloquent 结果 Laravel 4.2

Add row manually to eloquent result in Laravel 4.2

我正在使用 Laravel 4.2 并使用以下代码获取所有位置:

$locations = Location::all();

此位置随后显示在 select 框中。我怎样才能在结果中添加一个额外的行,以便在 select 框中显示一个空的第一个选项。

那么选项应该是:

我只想在 $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 中的第一行值(我知道这不适合要求)。