我在控制器上的存在方法是这样的:
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方法后,它不显示状态成功或失败
为什么它不起作用?
更新
我的控制器扩展ApiController
在ApiController中存在这样的方法:
public function respond($data, $headers=[])
{
return response()->json($data,$this->getStatusCode(), $headers);
}
答案 0 :(得分:2)
我建议你使用这个包:
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>
答案 1 :(得分:0)
您只需致电:
return \Redirect::back()->with('status', 'your status here...');
应该是它。
如果您希望返回Response:json
,可以使用json object
,方便AJAX
,如下所示:
return \Response::json(['status' => 'your status here...'], 200);
然后您可以使用status
跟踪视图ajax
,如下所示:
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);
答案 2 :(得分:-1)
使用:
$request->session()->flash('status', 'Task was successful!');