2017-05-07 115 views
1

我在Laravel的Sweet Alert中做了一个删除模式,它正在删除我选择的用户。然而,我会删除后重新回到用户名单,因为我的destroy()方法说。Laravel with Sweet Alert重定向

<script> 
    $('a#delete_user').on('click', function() { 
     var url = $(this).attr("data-href"); 
     swal({ 
       title: "Delete user?", 
       text: "Submit to delete", 
       type: "warning", 
       showCancelButton: true, 
       closeOnConfirm: false, 
       confirmButtonColor: "#DD6B55", 
       confirmButtonText: "Delete!" 
      }, 
      function() { 
       setTimeout(function() { 
        $.ajax({ 
         type: "POST", 
         url: url, 
         data: { 
          _method: 'DELETE', 
          _token: csrf_token 
         }, 
         success: function (data) { 
          if (data) 
           swal("Deleted!", "User has been deleted", "success"); 
          else 
           swal("cancelled", "User has not been deleted", "error"); 
         } 
        }), 2000 
       }); 
      }); 
    }) 
</script> 

这里是控制器:

public function destroy($id) 
{ 
    User::destroy($id); 
    return redirect('users')->with('status', 'User Deleted!'); 
} 

我想重定向到的用户列表与消息,我无法做到的

回答

0

在你的主模板文件或查看文件,如果在会话中有状态数据,则必须检查,如果是,则您打电话给甜言蜜语。示例代码:

@if (session('status')) 
    <script> 
     $(document).ready(
      swal("{{ session('status') }}") 
     }); 
    </script> 
@endif 
+0

我有它已经,它不会被触发。如果我设置了'location.reload()',那么没有状态被转发 – Norgul

+0

你必须检查什么不是触发 - 甜蜜的警报调用,或者session('status')是空的,所以如果语句没有在里面执行代码? – sebbz

+0

只有在删除用户按钮中删除ajax请求时,我的解决方案才能正常工作。当你使用ajax调用时,控制器中的重定向部分将不起作用。 – sebbz

0

编辑js文件是这样的:

success: function (data) { 
if (data == 'success') 
    swal("Deleted!", "User has been deleted", "success"); 
    window.location('Your URL'); 
else 
    swal("cancelled", "User has not been deleted", "error"); 
} 

和控制器:

if(User::destroy($id)){ 
    return 'success'; 
}else{ 
    return 'fail'; 
}