【发布时间】:2015-06-03 22:12:07
【问题描述】:
我遇到了一个奇怪的问题。我似乎无法通过 ajax 提交删除记录。我没有看到任何错误,因为这以前在 Laravel 4 上有效。我需要向该方法提供 CSRF 令牌吗?如果我将路线更改为任何而不是发布或删除并直接点击它,它将按预期删除。
{!! HTML::link(url(), 'Delete', array('class' => 'btn btn-delete', 'data-name' => $tile->tile_name, 'id' => $tile->id)) !!}
阿贾克斯
var id = $this.attr('id');
// Submit delete request to route with id
$.post('edit/delete/' + id);
// Redirect to gallery
window.location.href = 'http://ims-tiles.dev/';
路线
$router->post('edit/delete/{id}', [
'as' => 'tile.destroy',
'uses' => 'TileController@destroy'
]);
销毁方法
public function destroy($id) {
$tile = Tile::find($id);
$tags = explode(' ', $tile->getTags());
$tagIds = [];
foreach($tags as $tag){
array_push($tagIds, $tile->getTagId($tag));
}
$tile->tags()->detach($tagIds);
$tile->delete();
}
【问题讨论】:
-
你的路由监听了 DELETE 但你发送了一个 POST 请求
-
嗨!我什至将列表更改为 POST 请求的路由,它仍然不会删除记录。
-
您的浏览器控制台是否出现任何错误?