Laravel 列出函数前置值
Laravel lists function prepend value
Laravel lists
函数用于return一个数组所以我could prepend a value。但是它现在是一个对象。我想做的是为下拉列表生成一个列表,但在前面添加一个额外的值,内容如下:
['select a value.', '0']
我应该如何将数据添加到新的 Laravel lists
函数中?
lists()
returns 一个 Collection
对象。要将项目添加到集合的开头,可以使用 prepend
方法:
$statusCollection = \App\Status::lists('name', 'id');
$statusCollection->prepend('select a value', 0);
确保将非空键作为第二个参数传递给 prepend
,否则此方法最终会重新编号您的数字键。如果您不提供密钥,或传入 null,则底层逻辑将使用 array_shift
,这将对密钥重新编号。如果你确实提供了一个键,它会使用一个数组联合(+
),它应该保留键。
对于另一种选择,您可以使用 all()
方法获取基础项数组,然后按照您之前的操作进行操作:
$statusCollection = \App\Status::lists('name', 'id');
$statusArray = $statusCollection->all();
// if you want to renumber the keys, use array_shift
array_unshift($statusArray, 'select a value');
// if you want to preserve the keys, use an array union
$statusArray = [0 => 'select a value'] + $statusArray;
如果您对重新索引数字键没有问题,那么使用 array_unshift()
的公认答案就可以了。如果你想保留原来的数字键(例如,如果键对应于你的table条目的id),那么你可以这样做:
$statusCollection = \App\Status::lists('name', 'id');
$statusArray = $statusCollection->all();
$finalArray = array('0' => 'Select a value') + $statusArray;
Laravel lists
函数用于return一个数组所以我could prepend a value。但是它现在是一个对象。我想做的是为下拉列表生成一个列表,但在前面添加一个额外的值,内容如下:
['select a value.', '0']
我应该如何将数据添加到新的 Laravel lists
函数中?
lists()
returns 一个 Collection
对象。要将项目添加到集合的开头,可以使用 prepend
方法:
$statusCollection = \App\Status::lists('name', 'id');
$statusCollection->prepend('select a value', 0);
确保将非空键作为第二个参数传递给 prepend
,否则此方法最终会重新编号您的数字键。如果您不提供密钥,或传入 null,则底层逻辑将使用 array_shift
,这将对密钥重新编号。如果你确实提供了一个键,它会使用一个数组联合(+
),它应该保留键。
对于另一种选择,您可以使用 all()
方法获取基础项数组,然后按照您之前的操作进行操作:
$statusCollection = \App\Status::lists('name', 'id');
$statusArray = $statusCollection->all();
// if you want to renumber the keys, use array_shift
array_unshift($statusArray, 'select a value');
// if you want to preserve the keys, use an array union
$statusArray = [0 => 'select a value'] + $statusArray;
如果您对重新索引数字键没有问题,那么使用 array_unshift()
的公认答案就可以了。如果你想保留原来的数字键(例如,如果键对应于你的table条目的id),那么你可以这样做:
$statusCollection = \App\Status::lists('name', 'id');
$statusArray = $statusCollection->all();
$finalArray = array('0' => 'Select a value') + $statusArray;