如何在不重新索引的情况下将项目添加到 laravel 列表集合中?

Posted

技术标签:

【中文标题】如何在不重新索引的情况下将项目添加到 laravel 列表集合中?【英文标题】:How to prepend item to laravel lists collection without reindexing? 【发布时间】:2016-08-21 01:17:39 【问题描述】:

试图将集合传递给视图中的表单选择。 prepend 方法正在重新索引集合,我丢失了正确的公司 ID。

$companies = Company::lists('name','id');
return $companies;

/*
 * 
 *     "3": "Test 123 ",
 *     "4": "wer"
 *  
 */

$companies->prepend('Select a company');
return $companies;

/*
 * [
 *      "Select a company",
 *      "Test 123 ",
 *      "wer"
 * ]
 */

我现在正在使用 prepend 方法查看 Collection 对象,这里是:

public function prepend($value, $key = null)

    $this->items = Arr::prepend($this->items, $value, $key);

    return $this;

【问题讨论】:

【参考方案1】:

好的,我很快找到了解决方案。通过为第二个参数传递一个键,我使用 0,该方法将保留原始键。

$companies->prepend('Select a company', 0);
return $companies;

 \*
  * 
  *     "0": "Select a company",
  *     "3": "Test 123 ",
  *     "4": "wer"
  * 
  *\

【讨论】:

以上是关于如何在不重新索引的情况下将项目添加到 laravel 列表集合中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不跟踪索引的情况下将元素附加到列表?

如何在不滚动的情况下将项目添加到 ListView 的开头?

如何在不跟踪索引的情况下将元素附加到列表中?

如何在不重新加载页面的情况下将用户重定向到 redux saga 上的另一个页面

如何在不触发 selectionchanged 事件的情况下将项目添加到 ExtJS GridPanel

如何在不创建嵌套数组的情况下将多个变量添加到数组