【发布时间】:2015-04-10 18:13:24
【问题描述】:
学习 Laravel (4.1),我无法将行 ID 从表传递到控制器。我想要做的是用户点击图标删除记录。一个模态窗口将首先出现并询问他们是否确定要删除。如果他们单击“是”,则应将 ID 发送到控制器,以便可以进行删除。
我的 Laravel 路线是这样的
DELETE entir/guests/{guests} | entir.guests.destroy | GuestController@destroy
destroy 的控制器如下所示。现在我只是打印出 ID 和一条消息。
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);
}
};
删除模态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">×</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”的警报。然后模态窗口出现并要求您确认。如果我按下是,控制器会在我从销毁函数中得到消息时被调用。如您所见,此时我没有传递 ID,因为我不确定执行此操作的确切方法。我尝试了一些我在网上找到的示例,但最终在 laravel 中得到了一个未定义变量的错误。任何帮助表示赞赏。
这是我假设我需要传递 ID 的地方
{{Form::open(array('method'=>'DELETE', 'route' => array('entir.guests.destroy')))}}
【问题讨论】:
标签: javascript php twitter-bootstrap laravel-4