微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

laravel 5.7访问不了路由

随着 Laravel 5.7 的推出,有很多用户反映访问路由出现了问题。这个问题的出现可能会让你在开发过程中浪费大量的时间来处理。为了帮助大家解决这个问题,本文将详细介绍 Laravel 5.7 访问不了路由的解决方案。

首先我们需要了解 Laravel 5.7 的一些新变化,这些变化可能会导致之前的代码无法正常运行。其中最重要的一个变化是添加了 CSRF 保护中间件。这个中间件可以确保用户提交的表单数据是否来自于你的应用程序,防止应用程序遭受 CSRF 攻击。

CSRF 保护中间件在 Laravel 5.6 中已经存在,但认并没有启用。但在 Laravel 5.7 中,Laravel 团队认启用了这个中间件。因此,在 Laravel 5.7 中,使用表单提交数据时需要添加 CSRF 令牌。

解决方法

有两种方法可以解决 Laravel 5.7 访问不了路由的问题。第一种方法是在 web.PHP 文件添加 CSRF 令牌。第二种方法是禁用 CSRF 保护中间件。

方法一:在 web.PHP 文件添加 CSRF 令牌

Laravel 5.7 代码的 RouteServiceProvider.PHP认使用了 web 中间件组,因此,在 web.PHP 文件添加 CSRF 令牌最简单的方法就是使用 {{ csrf_field() }} 方法

例如,如果你有一个处理 POST 请求的路由:

Route::post('/foo', function () {

return 'Hello World';

});

你需要在表单中添加 {{ csrf_field() }} 方法生成 CSRF 令牌:

<form method="POST" action="/foo">

{{ csrf_field() }}
<!-- ... -->

</form>

这个方法可以确保你的 Laravel 5.7 应用程序可以正常处理 POST 请求。

方法二:禁用 CSRF 保护中间件

禁用 CSRF 保护中间件是另一个解决 Laravel 5.7 访问不了路由的方法。虽然这种方法可能会稍微降低你的 Laravel 应用程序的安全性,但如果你的应用程序不会受到 CSRF 攻击的威胁,那么这种方法是可行的。

要禁用 CSRF 保护中间件,你需要在 VerifyCsrftoken 类的 $except 属性添加要忽略的 URI。

打开 app/Http/Middleware/VerifyCsrftoken.PHP 文件,然后在 $except 属性添加要忽略的路由:

protected $except = [

'your-route-to-ignore'

];

例如,假设你想忽略“register”路由:

protected $except = [

'register'

];

这个方法可以确保你的 Laravel 5.7 应用程序可以正常处理所有请求。

结论:

总的来说,在 Laravel 5.7 中访问不了路由的问题主要是由于认启用了 CSRF 保护中间件所导致的。因此,如果你在开发的过程中遇到了这个问题,可以尝试使用这两种方法解决。如果你要禁用 CSRF 保护中间件,应该仅对那些不涉及敏感或重要数据的路由使用。这个方法可能会略微降低你的 Laravel 应用程序的安全性,因此建议使用方法一来确保你的应用程序的安全性。

以上就是laravel 5.7访问不了路由的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。