从引导程序3删除模式向laravel控制器传递行id


Passing row id to laravel controller from bootstrap 3 delete modal

Learning Laravel(4.1)和我在将行id从表传递到控制器时遇到了问题。我想做的是用户点击图标删除记录。首先会出现一个模式窗口,询问他们是否确定要删除。如果单击"是",则应将ID发送到控制器,以便进行删除。

我的Laravel路线看起来像这个

 DELETE entir/guests/{guests}   | entir.guests.destroy | GuestController@destroy 

销毁的控制器如下所示。现在我只是打印身份证和一条信息。

    public function destroy($id)
{
 print_r($id);
return 'You called the Destroy function';
}

构建表格的html代码是

<table id="table" data-toggle="table" data-url="{{ action('GuestController@show') }}" data-click-to-select="true" data-single-select="true" data-pagination="true" data-search="true">                 
<thead>
    <tr>
        <th data-field="id" data-align="right" data-sortable="true">ID</th>
        ...
        <th data-field="operate" data-formatter="operateFormatter" data-events="operateEvents">Actions</th>
    </tr>
</thead>

这是表和删除事件的javascript。

<script>
function operateFormatter(value, row, index) {
    return [
        '<a class="edit ml10" href="javascript:void(0)" title="Entir Guest">',
        '<i class="glyphicon glyphicon-edit"></i>',
        '</a>',
        '<a class="remove ml10" href="javascript:void(0)" title="Remove">',
        '<i class="glyphicon glyphicon-remove"></i>',
        '</a>'
        ].join('');
}
window.operateEvents = {                                
        'click .remove': 
        function (e, value, row, index) {
            $('#deleteModal').data('id', row.id).modal('show');
                var id = JSON.stringify(row.id);
                // Alert the ID for testing                                 
                alert('Remove ID: ' + id);                
            }
};

删除Modal html

<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header modal-header-danger">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h4 class="modal-title" id="myModalLabel">Warning!</h4>
        </div>
        <div class="modal-body">
            <h4> Are you sure you want to Delete?</h4>
        </div>
        <!--/modal-body-collapse -->
        <div class="modal-footer">
            {{Form::open(array('method'=>'DELETE', 'route' => array('entir.guests.destroy')))}}
            <button type="submit" class="btn btn-danger" id="btnDelteYes">Yes</button>
            <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
            {{ Form::close() }}
        </div>
        <!--/modal-footer-collapse -->
    </div>
    <!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->

假设我有ID为1-20的第1-20行。如果我选择第1行并单击删除图标,我会收到一条提示,上面写着"删除ID:1"。然后会出现Modal窗口并要求您进行确认。如果我按yes,当我从destroy函数得到消息时,控制器就会被调用。正如你所看到的,我现在没有通过身份证,因为我不确定具体的方法。我尝试了一些我在网上找到的例子,但我最终在laravel中得到了一个未定义的变量错误。感谢您的帮助。

这就是我假设我需要通过ID 的地方

{{Form::open(array('method'=>'DELETE', 'route' => array('entir.guests.destroy')))}}

通过将ID作为href传递给控制器来解决问题。