我正在尝试在数据库中存储多个图像,并在视图中显示它们。我有相关的产品表和图像表,在图像表中有一个外键名为(图像)。到目前为止收到此错误"Array to string conversion"
这是代码
控制者
public function store(Request $request)
{
$formInput=$request->all();
$image=array();
if($files=$request->file('image')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('images',$name);
$image[]=$name;
}
}
product::create(array_merge($formInput,
['user_id' => Auth::user()->id,
'image' => $image
]));
return redirect()->back();
刀
<input type="file" name="image[]" multiple class="form-control">
Product.php
public function products()
{
return $this->belongsTo('App\Images', 'image');
}
Images.php
public function images()
{
return $this->hasMany(Product::class, 'image');
}
据我所知文件上传没有错误,但是当您尝试存储时
像这样或可能面向对象
这将是一个错误
$CreateArray = array_merge($request->all(), [
'image' => $image
]);
Model::create( $CreateArray);
因此,由于如果您要上传多个文件,并且您将获得文件名数组,但无法将其作为数组存储在数据库中,
$CreateArray = array_merge($request->all(), [
'image' => json_encode($image)
]);
Model::create( $CreateArray);
已编辑
public function store(Request $request)
{
$formInput=$request->all();
$image=array();
if($files=$request->file('image')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('images',$name);
$image[]=$name;
}
}
product::create(array_merge($formInput,
[
'user_id' => Auth::user()->id,
'image' => json_encode($image)
]));
return redirect()->back();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句