我正在使用Laravel 5构建一个应用程序,我想在一个用逗号分隔的数组中插入几个图像URL。这将放在数据库的一列中。这些文件已成功上传到我的AWS S3存储桶,但它现在是数据库的输入。我尝试使用Laravel的array_add助手,但是我得到一个错误,说明我缺少参数2.我想知道如何才能实现这一点。我目前的替代解决方案是使用post id放置图像并使用关系将它们连接在一起。
供参考:我打算放置图像的列是picgallery,插入是使用$ newproperty ['picgallery']变量完成的。
int
答案 0 :(得分:0)
array_add需要3个参数
$ array = array_add($ array,'key','value'); (https://laravel.com/docs/5.1/helpers#method-array-add)
例如
$testArray = array('key1' => 'value1');
$testArray = array_add($testArray, 'key2', 'value2');
你会得到
[
"key1" => "value1",
"key2" => "value2",
]
在这种情况下,您可能无法使用array_add。
我认为为了解决您的问题,请将您的foreach循环修改为类似
//storage into AWS
// init the new array here
$array = [];
foreach ($files as $file) {
$uploadedFile = $file;
$upFileName = time() . '.' . $uploadedFile->getClientOriginalName();
$filename = strtolower($upFileName);
$s3 = \Storage::disk('s3');
$filePath = 'properties/' . $rando . '/' . $filename;
$s3->put($filePath, file_get_contents($uploadedFile), 'public');
$propicurl = 'https://s3-ap-southeast-1.amazonaws.com/cebuproperties/' . $filePath;
// change how to use array_add
array_push($array, array('img' => $propicurl));
// remove the below line
// $array = array_add($array, 'img', $propicurl);
}
// move this assignment out of foreach loop
$newproperty['picgallery'] = $array;