设为首页 加入收藏

TOP

Laravel 系列入门教程(四)【最适合中国人的 Laravel 教程】(三)
2019-08-24 00:02:50 】 浏览:125
Tags:Laravel 系列 入门教程 适合 国人 教程
相比最大的不同就是运行方式的不同:删除按钮看起来是一个独立的按钮,其实它是一个完整的表单,只不过只有这一个按钮暴露在页面上:

<form action="{{ url('admin/articles/'.$article->id) }}" method="POST" style="display: inline;">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
    <button type="submit" class="btn btn-danger">删除</button>
</form>

大家可能注意到了这句代码 {{ method_field('DELETE') }},这是什么意思呢?这是 Laravel 特有的请求处理系统的特殊约定。虽然 DELETE 方法在 RFC2616 中是可以携带 body 的(甚至 GET 方法都是可以携带的),但是由于历史的原因,不少 web server 软件都将 DELETE 方法和 GET 方法视作不可携带 body 的方法,有些 web server 软件会丢弃 body,有些干脆直接认为请求不合法拒绝接收。所以在这里,Laravel 的请求处理系统要求所有非 GET 和 POST 的请求全部通过 POST 请求来执行,再将真正的方法使用 _method 表单字段携带给后端。上面小作业中的小坑便是这个,PUT/PATCH 请求也要通过 POST 来执行。

在控制器中增加删除文章对应的是 destroy 方法:

public function destroy($id)
{
    Article::find($id)->delete();
    return redirect()->back()->withInput()->withErrors('删除成功!');
}

点击删除按钮,检验效果:

恭喜你,文章新增、编辑、删除功能构建成功!

转载他处,侵权联系删除

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇服务器对接码云webhooks 下一篇laravel文件上传

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目