Laravel框架中路由文件在哪里,怎么定义路由
Admin 2022-06-15 群英技术资讯 751 次浏览
laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。
本教程操作环境:windows7系统、Laravel6版,DELL G3电脑。
在 Laravel 中要简单地定义一个路由非常方便,传递一个 URI 和闭包即可。
Route::get('foo', function () { return 'Hello World'; })
Laravel 中所有的路由定义在 routes 目录下,这个目录下的内容会自动被框架加载。 routes 目录中默认有四个路由文件用于给不同的入口使用:web.php、api.php、 console.php 和 channels.php。
web.php 文件包含的路由都位于 RouteServiceProvider 所定义的 web 中间件组约束之内,因而支持 Session、CSRF 保护以及 Cookie 加密功能,如果应用无需提供无状态的、RESTful 风格的 API,那么路由基本上都要定义在 web.php 文件中。
api.php 文件包含的路由位于 api 中间件组约束之内,支持频率限制功能,这些路由是无状态的,所以请求通过这些路由进入应用需要通过 token 进行认证并且不能访问 Session 状态。
console.php 文件用于定义所有基于闭包的控制台命令,每个闭包都被绑定到一个控制台命令并且允许与命令行 IO 方法进行交互,尽管这个文件并不定义 HTTP 路由,但是它定义了基于控制台的应用入口(路由)。
channels.php 文件用于注册应用支持的所有事件广播频道。
许多项目,基本上都是以 routes/web.php 为起点进行开发的,它能实现快速开发一个项目的需要。在 routes/web.php 中定义的路由在浏览器中是可以直接访问到的。例如,在浏览器中输入 http://your-app.dev/user 地址来访问下面的路由:
Route::get('/user', 'UsersController@index');
定义在 routes/api.php 中的路由被嵌套在了一个路由组里,这是在 RouteServiceProvider 中设定的。这个组里的路由都使用了 /api 这个 URI 前缀,这样在你定义路由的时候,就不必再手动添加这个前缀了。如果你不想使用 /api 这个前缀的话,那么可以在 RouteServiceProvider 中修改。
/** * Define the "api" routes for the application. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); }
可用的路由方法
每一个 HTTP 请求类型都有对应的路由方法可供使用:
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);
有时一个路由需要能够匹配多个请求类型,这时可以用 match 方法。
Route::match(['get', 'post'], '/', function () { // });
如果希望一个路由能够匹配所有请求类型的话,使用 any 方法:
Route::any('foo', function () { // });
CSRF 保护
使用 Route::post、Route::put、Route::patch 和 Route::delete 定义的路由,要求访问它们的 HTML 表单都要传递一个 CSRF token,否则请求会被拒绝。你可以在 CSRF 文档里阅读更多这方面的内容。
<form method="POST" action="/profile"> {{ csrf_field() }} ... </form>
重定向路由
如果你要将一个路由重定向到另一个路由,可以使用 Route::redirect 方法。这就节省定义一个完整路由或者控制器来操作简单的重定向带来的一些麻烦:
Route::redirect('/here', '/there', 301);
视图路由
如果你只是要简单返回一个视图,可以使用 Route::view 方法,类似 Route::redirect 方法,也节省了一些麻烦。view 方法的第一个参数是 URI,第二个参数是视图名。另外,也可以使用可选的第三个数组类型参数向视图传递数据:
Route::view('/welcome', 'welcome'); Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
workerman无法使用是因为“stream_socket_server”函数被“php.ini”禁用,解决办法:首先打开“php.ini”文件;然后找到“disable_functions”项;接着删掉“stream”禁用项即可。
PHP5提供了一种定义对象的方法使其可以通过单元列表来遍历,例如用 foreach 语句。默认情况下,所有可见属性都将被用于遍历。Example#1简单的对象遍历classMyClas...
swoole编译失败的解决办法:首先在“~/.bashrc”文件中加入内容为“export LANGUAGE="en_US.UTF-8"”;然后执行命令“source /root/.bashrc”;最后安装相关依赖库即可。
implode使用一个字符串将数组变成字符串<?php$array=array('lastname','email','phone');$comma_separated=implode(",",$array);echo$comma_separated;//lastname,email,phone//Emptystringwhenusing
面向对象的三大特点是封装、继承、多态。本文将通过示例详细讲讲这三者的使用,文中示例代码讲解详细,需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008