Laravel:控制器上的模态混淆功能

Phi*_*hil 2 php laravel eloquent

我有一个删除按钮用于删除像这样的记录

{{Form::open(array('method'=>'DELETE', 'route' => array('users.destroy', $user->id)))}}
{{Form::submit('Delete', array('class'=>'btn btn-danger'))}}
{{Form::close()}}
Run Code Online (Sandbox Code Playgroud)

表单路由到控制器销毁功能,我喜欢这样

public function destroy($id)
{                                                          
  User::find($id)->delete();
  return Redirect::route('users.index');
}     
Run Code Online (Sandbox Code Playgroud)

但我希望在删除记录之前弹出确认提醒.有没有办法让控制器打开模态对话框并获得返回值?或者控制器是否打开一个视图,打开一个模态,然后再次指向另一个删除的控制器或一个重新路由的控制器......对控制器如何以这种方式控制逻辑感到困惑......

我的部分中有twitter bootstrap和jquery <head>就像这样

<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">    |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

Wal*_*mar 5

你的控制器没有任何关系,只需要一些JavaScript即可.

由于您使用的是bootstrap,因此最简单的方法是使用BootstrapDialog.

{{Form::open(array('method'=>'DELETE', 'route' => array('users.destroy', $user->id)))}}
{{Form::submit('Delete', array('class'=>'btn btn-danger'))}}
{{Form::close()}}

<script>
$(document).ready(function(){
    $('form').submit(function(e){
      e.preventDefault();
        url = $(this).parent().attr('action');
        BootstrapDialog.confirm('Are you sure you want to delete?', function(result){
            if(result) {
                $.ajax(url);
            }
        });
    });

});
</script>
Run Code Online (Sandbox Code Playgroud)

注意不要忘记在Bootstrap和jQuery包含之后添加以下内容.

<script src="your link to bootstrap-dialog.js"></script>
Run Code Online (Sandbox Code Playgroud)

你可以从这里下载.

工作演示