2017-08-01 17 views
0

私はAPIrestをLaravel 5に持っています。 ファイルをアップロードしようとしています。 これは私のコントローラである:未定義の変数: fileArray未定義変数の問題が発生しました

私はそれがShipmentController.php線132でこのエラー

ErrorExceptionをスローし、ファイルをアップロードする際にフロントエンド(angularjs)で

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); 
} 

これはなぜ発生していますか?

+0

あなたは理由 '場合は、このエラーを取得する(ISSET($要求 - >ファイルに)&& IS_ARRAY($要求 - >ファイル))'ので、あなたの変数が初期化されることは決してありません偽と評価。 –

答えて

2

ステートメントがこのステートメントのローカル変数のように機能する場合は、内に$ 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); 
} 
+0

私はもっと複雑なエラーを探していました。ありがとう –

4

ifの外に$fileArray=array();を宣言する必要があります。最初のifがtrueを評価しない場合、変数は設定されません。

関連する問題