【问题标题】:Laravel ErrorException: Undefined variableLaravel ErrorException:未定义的变量
【发布时间】:2020-09-24 19:35:21
【问题描述】:

我正在尝试通过 axios api troughr Laravel 上传文件。下面是控制器代码,但是 我不明白为什么 Laravel 告诉我第 24 行的变量名是未定义的。 在我看来,变量已定义...

public function store(Request $request)
{
    $this->validate($request, [
        'image' => 'required'
]);

if($request->get('image'))
{
    $image = $request->get('image');
    $name = time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1])[1];
    \Image::make($request->get('image'))->save(public_path('images/').$name);
}

$image= new FileUpload();
$image->image_name = $name;
$image->save();

return response()->json(['success' => 'You have successfully uploaded an image'], 200);
}

这是第 24 行:$image->image_name = $name;

【问题讨论】:

  • 请发布您的第 24 行代码
  • $image->image_name = $name;
  • $image->image_name = $name;这是第 24 行吗??

标签: php laravel


【解决方案1】:

你必须让你的变量在更高的可见性范围内:

public function store(Request $request)
{
    $this->validate($request, [
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);
 $name=''; // here you define your vaiable
if($request->get('image'))
{
    $image = $request->get('image');
    $name = time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1])[1];
    \Image::make($request->get('image'))->save(public_path('images/').$name);
}

$image= new FileUpload();
$image->image_name = $name;
$image->save();

return response()->json(['success' => 'You have successfully uploaded an image'], 200);
}

关于变量范围的更多信息:

https://phppot.com/php/variable-scope-in-php/

【讨论】:

  • 他还需要检查文件是validation 上的图像
猜你喜欢
  • 1970-01-01
  • 2023-03-05
  • 2018-01-26
  • 2018-12-12
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
相关资源
最近更新 更多