【问题标题】:Trouble with undefined variable in laravellaravel 中未定义变量的问题
【发布时间】:2018-01-08 22:08:25
【问题描述】:

我在 Laravel 5 中有我的 APIrest。 我正在尝试上传文件。 这是我的控制器:

 public function makeFile(Request $request)
 {
     if(isset($request->files) && is_array($request->files)) {
         $fileArray=array();
         foreach($request->files as $key=>$fileEntity) {
             $file= new File();
             $file->file=$fileEntity['file'];
             $file->shipment_id=$fileEntity['shipment_id'];
             $file->user_id=$fileEntity['user_id'];
             $file->date=date('Y,m,d,G,i,s');
             $file->fileName=$fileEntity['fileName'];
             $file->fileType=$fileEntity['fileType'];
             $file->status=$fileEntity['status'];
             $file->save();

             array_push($fileArray, $file);
         }
         // return response()->json($fileArray);
     }
 (line 132 the one of the error)     return response()->json($fileArray);
 }

在前端(angularjs)中,当我上传文件时会引发此错误

ShipmentController.php 第 132 行中的 ErrorException:未定义变量: 文件数组

为什么会这样?

【问题讨论】:

  • 您收到此错误是因为 if(isset($request->files) && is_array($request->files)) 的计算结果为 false,因此您的变量永远不会被初始化。

标签: php angularjs arrays laravel-5


【解决方案1】:

您在 if 语句中声明了 $fileArray 变量,它的作用类似于该语句的局部变量。

解决方案

public function makeFile(Request $request)
{
    $fileArray = [];
    if (isset($request->files) && is_array($request->files)) {
        foreach ($request->files as $key => $fileEntity) {
            $file= new File();
            $file->file=$fileEntity['file'];
            $file->shipment_id=$fileEntity['shipment_id'];
            $file->user_id=$fileEntity['user_id'];
            $file->date=date('Y,m,d,G,i,s');
            $file->fileName=$fileEntity['fileName'];
            $file->fileType=$fileEntity['fileType'];
            $file->status=$fileEntity['status'];
            $file->save();

            $fileArray[] = $file;
        }
    }
    return response()->json($fileArray);
}

【讨论】:

    【解决方案2】:

    您必须在第一个 if 之外声明 $fileArray=array();。如果第一个 if 的计算结果不正确,则该变量未设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-12
      • 2021-05-30
      • 1970-01-01
      • 2017-09-22
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      相关资源
      最近更新 更多