2016-09-27 1 views
0

->delete()を使用してデータベースからレコードを削除しようとすると、レコードを正常に削除した後にコードが停止するという問題が発生しました。私はコードが動作$image->delete();Storage::delete($image)を置いたときにコードが特定の順序であるときにファイルが削除されない

このコードは、しかしStorage::delete($image)

public function productImageDelete(Request $request){ 
    if($request->ajax()): 
     $image_id = Input::get('image-id'); 
     $image = Input::get('image'); 
     try { 
      $image = Image::findOrFail($image_id); 
      $image->delete(); 
      Storage::delete($image); //This doesn't execute at all 
      return "success"; 
     } catch (\Illuminate\Database\QueryException $e) { 
      return $e; 
     } 
    endif; 
} 

を実行しません。

public function productImageDelete(Request $request){ 
    if($request->ajax()): 
     $image_id = Input::get('image-id'); 
     $image = Input::get('image'); 
     try { 
      Storage::delete($image); //This executes first 
      $image = Image::findOrFail($image_id); 
      $image->delete(); 
      return "success"; 
     } catch (\Illuminate\Database\QueryException $e) { 
      return $e; 
     } 
    endif; 
} 

答えて

1

詳細を確認する必要があります。 $imageという2つの変数を作成していますが、それが問題です。

最初のケースでは、あなたは$imageがオブジェクトである第2の場合には、あなたが同じメソッドを呼び出しているが、その場合には$imageInput::get('image')あるStorage::delete($image);を呼んでいます。

変数の名前をInput::get('image')に変更して、たとえば$imageParam = Input::get('image')に変更してStorage::delete($imageParam);を実行すると、どちらの場合でも機能するはずです。

最下行は、同じ変数名を使用しないでください。不要な混乱の原因となります。

+0

タイ –

関連する問題