2017-02-17 54 views
2

上控制器我destory方法是這樣的:如何顯示消息成功或失敗的使用情況? (Laravel 5.3)

public function destroy($id) 
{ 
    try{ 
     if($this->product_service->destroy($id)){ 
      return $this->respond(['status' => 'success']); 
     }else{ 
      return $this->respond(['status' => 'failed']); 
     } 
    }catch (\Exception $e){ 
     return $this->respondWithError(); 
    } 
} 

我的觀點是這樣的:

@if (session('status')=='success') 
    <div class="alert alert-success"> 
     <ul> 
      <li>Delete Success</li> 
     </ul> 
    </div> 
@elseif (session('status')=='failed') 
    <div class="alert alert-warning"> 
     <ul> 
      <li>Delete Failed</li> 
     </ul> 
    </div> 
@endif 

destroy方法執行時,它不顯示狀態的成功或失敗的

爲什麼它不起作用?

UPDATE

我的控制器擴展ApiController

而且在ApiController存在的方法是這樣的:

public function respond($data, $headers=[]) 
{ 
    return response()->json($data,$this->getStatusCode(), $headers); 
} 
+0

你實際上並沒有在任何地方向會話添加任何東西。您也正在返回json響應,因此很難說您的視圖何時正確加載。 – user3158900

回答

1

我會建議你使用這個包是:

https://github.com/laracasts/flash

請閱讀那裏的文檔,它很好地解釋。

OR

如果你想這樣做,使用自定義代碼:

控制器

public function destroy($id) 
{ 
    if($this->product_service->destroy($id)){ 
    return view('viewname', ['class' => 'success', 'message' => 'Delete Success']); 
    } else{ 
    return view('viewname', ['class' => 'success', 'message' => 'Delete Failed']); 
    } 
} 

查看:

<div class="alert alert-{{ $class }}"> 
    <ul> 
     <li>{{ $message }}</li> 
    </ul> 
    </div> 
+0

我想用'$ this-> respond'。不是其他人。它不能嗎? –

+0

不,它不能,..你在哪裏閱讀關於該方法?你能給URL嗎? –

+0

我的控制器擴展ApiController。在我的ApiController存在的方法是這樣的:'公共函數響應($數據,$頭= []) { return response() - > json($ data,$ this-> getStatusCode(),$ headers); }' –

0

您只需撥打:

return \Redirect::back()->with('status', 'your status here...'); 

這應該是它。

或者你可以使用Response:json如果你希望爲隨後返回一個json object,方便與AJAX

return \Response::json(['status' => 'your status here...'], 200); 

,然後你可以使用ajax視圖趕上status如下:

errorsHtml = '<div class="alert alert-danger"><ul>'; 
$.each(responseText, function(k, v){ 
errorsHtml += '<li>' + v + '</li>'; 
}); 
errorsHtml += '</ul></div>'; 
$("#feedback").append(errorsHtml); 

請注意,您可以通過\Response::json方法中的任何其他數據:

return \Response::json(['status' => 'your status here...', 'data' => $data], 200); 
相關問題