با سلام و عرض ادب
تابع زیر قراره اطلاعات فرم رو ذخیره کنه ولی با خطای Array to string conversion مواجه میشم .
public function store(ArticleRequest $request)
{
$imagesUrl = $this->uploadImages($request->file('images'));
auth()->user()->articles()->create(array_merge($request->all() , [ 'images' => $imagesUrl]));
return redirect(route('articles.index'));
}
تابعی که با استفاده از اون اطلاعات تصویر رو ذخیره میکنم هم به شرح زیر است :
اطلاعات مورد استفاده تصویر (اندازه ها و آدرس ها) به صورت آرایه بر گردونده میشه .. اونو چطور ذخیره کنم که خطای مورد نظر رو نداشته باشم ؟
protected function uploadImages($files)
{
$year = Carbon::now()->year;
$month = Carbon::now()->month;
$path = "/upload/images/{$year}/{$month}/";
$fileName = $files->getClientOriginalName();
$file = $files->move(public_path($path),$fileName);
$sizes = ['300','600','900'];
$url['images'] = $this->resize($sizes,$file,$path,$fileName);
$url['thumb'] = $url['images'][$sizes[0]];
return $url;
}
private function resize($sizes,$file,$path,$fileName)
{
$images['org'] = $path.$fileName;
foreach ($sizes as $size){
$images[$size] = $path."{$size}_".$fileName ;
Image::make($file->getRealPath())->resize($size,null,function ($constraint) {
$constraint->aspectRatio();
})->save(public_path($images[$size]));
}
return $images;
}
طبق آموزش دوره فروشگاهی لاراول موجود در سایت جلو رفتم که البته در خود اموزش خطا نداشت .
ممنون
بهترین پاسخ
انتخاب شده توسط captan
captan
3 سال پیش
حل شد ؛ در لاراول راه حلش اینه :
داخل مودل مورد نظر بایستی تعریف بشه که اون فیلد از نوع ارایه می باشد .
protected $casts = ['images' => 'array'];