Laravel lists
函数用于返回一个数组,因此我可以添加一个值。但是它现在是一个物体。我想做的是为下拉列表生成一个列表,但在前面添加一个额外的值,比如:
['select a value.', '0']
我应该如何添加数据到新的Laravel lists
函数?
lists()
返回一个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()
的可接受答案是有效的。如果您希望维护原始的数字键(例如,如果键对应于表项的id),那么您可以这样做:
$statusCollection = 'App'Status::lists('name', 'id');
$statusArray = $statusCollection->all();
$finalArray = array('0' => 'Select a value') + $statusArray;