【发布时间】:2019-04-27 01:54:49
【问题描述】:
如何使用图像数组使其成为内爆函数?我收到以下错误:
implode():传递的参数无效
我的控制器:
public function store(Request $request)
{
$this->validate($request, [
'promotion_image' => 'required'
]);
if ($request->has('promotion_image'))
{
//Handle File Upload
$promotion = [];
foreach ($request->file('promotion_image') as $key => $file)
{
// Get FileName
$filenameWithExt = $file->getClientOriginalName();
//Get just filename
$filename = pathinfo( $filenameWithExt, PATHINFO_FILENAME);
//Get just extension
$extension = $file->getClientOriginalExtension();
//Filename to Store
$fileNameToStore = $filename.'_'.time().'.'.$extension;
//Upload Image
$path = $file->storeAs('public/promotion_images',$fileNameToStore);
array_push($promotion, $fileNameToStore);
}
$fileNameToStore = serialize($promotion);
}
else
{
$fileNameToStore='noimage.jpg';
}
foreach ($promotion as $key => $value) {
$promotionImage = new Promotion;
$promotionImage->promotion_image = implode(' , ',$value);
$promotionImage->save();
}
return redirect('/admin/airlineplus/promotions')->with('success', 'Image Inserted');
}
我的看法:
@foreach($promotions as $promotion)
<tr>
//HERE IS WHERE THE IMAGE ARE VIEWED <th><img src="{{ asset('storage/promotion_images/' . $promotion->promotion_image) }}" style="width:50px;height:50px;"></th>
<th><a href="/admin/airlineplus/promotions/{{ $promotion->id }}/edit" class="fa fa-edit btn btn-primary btn-lg"></a></th>
</tr>
@endforeach
【问题讨论】:
-
要让它工作,你应该确定
$value实际上是一个数组,因为implode()函数只接受数组作为第二个参数。将第一行放在 foreach 块dd($value);中,以检查这是什么类型的变量。 -
先生,您能编辑一下代码吗? :( 自从昨晚以来我一直在努力,甚至无法获得正确的代码。
-
但我想要在我的代码中将图像插入到我的数据库的一列中,这就是它具有内爆功能的原因
-
我告诉你从哪里开始调试给定的错误。同样,在第二个 foreach 循环的第一行中输入
var_dump($value); exit;或更短的dd($value)并告诉已经得到了什么 - 实际上是什么$value。它应该是一个数组来消除内爆错误消息。 -
它在 dd($value) 之后显示一个文本 .."Desert_01.jpg"
标签: mysql arrays laravel implode