如何显示消息成功或失败使用响应视图? (Laravel 5.3)

时间:2017-02-17 14:14:15

标签: php laravel session 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方法后,它不显示状态成功或失败

为什么它不起作用?

更新

我的控制器扩展ApiController

在ApiController中存在这样的方法:

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

3 个答案:

答案 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!');

https://laravel.com/docs/5.4/session#flash-data