相关疑难解决方法(0)

在Laravel中将数组转换为集合

我在PHP中有以下数组:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]
Run Code Online (Sandbox Code Playgroud)

现在我想把它转换成一个集合,所以我按键website或者排序url.但是当我这样做时:

$myArray = collect(websites);
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

 {
      "0": {
         "website": "example",
         "url": "example.com"
      },
      "1": {
         "website": "example",
         "url": "example.com"
      }
    }
Run Code Online (Sandbox Code Playgroud)

并且排序不起作用,我想知道我做错了什么以及如何修复它所以我有一个我可以轻松排序的对象的数组集合.

编辑: 我希望输出与此相同:

[
  {
     "website": "example",
     "url": "example.com"
  },
  {
     "website": "example",
     "url": "example.com"
  }
]
Run Code Online (Sandbox Code Playgroud)

通过"排序不起作用"我的意思是项目没有排序.

collections laravel laravel-5

15
推荐指数
2
解决办法
4万
查看次数

如何在laravel上插入大数据?

我正在使用 Laravel 5.6

我插入大数据的脚本是这样的:

...
$insert_data = [];
foreach ($json['value'] as $value) {
    $posting_date = Carbon::parse($value['Posting_Date']);
    $posting_date = $posting_date->format('Y-m-d');
    $data = [
        'item_no'                   => $value['Item_No'],
        'entry_no'                  => $value['Entry_No'], 
        'document_no'               => $value['Document_No'],
        'posting_date'              => $posting_date,
        ....
    ];
    $insert_data[] = $data;
}
\DB::table('items_details')->insert($insert_data);
Run Code Online (Sandbox Code Playgroud)

我试图用脚本插入 100 条记录,它有效。它成功插入数据

但是如果我尝试用脚本插入 50000 条记录,它会变得非常慢。我已经等了大约 10 分钟,但没有奏效。存在这样的错误:

504 Gateway Time-out
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

insert bigdata laravel laravel-5 laravel-5.6

6
推荐指数
2
解决办法
1万
查看次数

Laravel集合将数组转换为对象

如果我运行$collection->filter(myFilter),Laravel会为集合中的每个模型添加密钥这样烦人的事情,如下所示:

{
    "4": {
        "myObject": "data"
    },
    "7": {
        "myObject": "data"
    }
}
Run Code Online (Sandbox Code Playgroud)

如何摆脱"4"和"7",这是我的对象数组?

我运行的代码是:

$obj = Cars::with('brand')->orderBy('id')->get();

return $obj->filter(function($value, $key)
{
    return $value->display == true;
});
Run Code Online (Sandbox Code Playgroud)

php json laravel laravel-collection

5
推荐指数
2
解决办法
6366
查看次数

从多维数组创建集合?

我正在尝试从一些数据数组中创建一个集合:

$myCollection = collect(
    ['product_id' => 1, 'price' => 200, 'discount' => '50'],
    ['product_id' => 2, 'price' => 400, 'discount' => '50']
);
Run Code Online (Sandbox Code Playgroud)

当我循环出去时,我想做:

foreach ($myCollection as $product) {
    echo $product->price;
    echo $product->discount;
}
Run Code Online (Sandbox Code Playgroud)

但是底层元素似乎仍然是数组格式,我怎样才能实现上述输出?

laravel laravel-5 laravel-5.4

2
推荐指数
2
解决办法
7212
查看次数