我正在尝试在数据库中存储多个图像,并在视图中显示它们。我有相关的产品表和图像表,在图像表中有一个外键名为(图像)。到目前为止,出现此错误@Injectable()
export class ErrorHandlerService extends ErrorHandler {
...................
...................
handleError(error: Error | HttpErrorResponse) {
//i need to get the values from LINE 1 & LINE 2 here..
}
}
这是密码
控制器
"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();
Product.php
<input type="file" name="image[]" multiple class="form-control">
Images.php
public function products()
{
return $this->belongsTo('App\Images', 'image');
}
答案 0 :(得分:1)
据我所知,文件上传没有错误,但是在您尝试存储时
喜欢这个,或者可能是面向对象的
这将是一个错误
$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();
希望有帮助
如有任何问题,请敬请评论