首页 > 解决方案 > Laravel 8:未定义的偏移量错误消息

问题描述

我正在使用 Laravel 控制器:

class AdminController extends Controller
{
    protected function uploadImages($file)
    {
        $year = Carbon::now()->year;
        $imagePath = "/upload/images/{$year}/";
        $filename = $file->getClientOriginalName();
        $file = $file->move(public_path($imagePath), $filename);
        $sizes = ["300","600","900"];
        $url['images'] = $this->resize($file->getRealPath(), $sizes, $imagePath, $filename);
        $url['thumb'] = $url['images'][$sizes[0]];
        dd($url);
    }
    private function resize($path, $sizes, $imagePath, $filename)
    {
        $images['original'] = $imagePath . $filename;
        foreach($sizes as $size)
        {
            $image[$size] = $imagePath . "{$size}" . $filename;
            Image::make($path)->resize($size, null, function($constraint){
                $constraint->aspectRatio();
            })->save(public_path($image[$size]));
        }
        return $images;
    }
}

当我填写此控制器随附的表格时,我收到以下消息:

ErrorException 未定义的偏移量:300

从这一行:

$url['thumb'] = $url['images'][$sizes[0]];

那么这里的问题是什么?

标签: phplaravellaravel-8

解决方案


问题可能是这一行:

$image[$size] = $imagePath . "{$size}" . $filename;

它应该是:

$images[$size] = $imagePath . "{$size}" . $filename;


推荐阅读