首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel源码分析之Route

路由是外界访问Laravel应用程序的通路或者说路由定义了Laravel的应用程序向外界提供服务的具体方式:通过指定的URI、HTTP请求方法以及路由参数(可选)才能正确访问到路由定义的处理程序。...上面注册路由时用到的Route类在Laravel里叫门面(Facade),它提供了一种简单的方式来访问绑定到服务容器里的服务router,Facade的设计理念和实现方式我打算以后单开博文来写,在这里我们只要知道调用的...下面我们从路由的注册、加载、寻址这几个阶段来看一下laravel里是如何实现这些的。...通过map方法我们能看到laravel将路由分为两个大组:api、web。这两个部分的路由分别写在两个文件中:routes/web.php、routes/api.php。...Laravel5.5里是把路由分别放在了几个文件里,之前的版本是在app/Http/routes.php文件里。

2.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel中获取路由参数Route Parameters的五种方法示例

    中定义的参数名,非上面方法中的参数名 */ $request->route('param1'); //结果为 1 ,获取的是第一个路由参数 $request->route('param2'); //结果为...Route对象 request()->route('param2'); //结果为 2 ,如果不带路由参数名则返回当前的Route对象 /** 方法四:使用 Route Facade */ Route:...实例动态属性 */ $request->param1; //结果为 1 ,Laravel 5.4+ 可用 $request->param2; //结果为 2 ,Laravel 5.4+ 可用 // 或者...request()->param1; //结果为 1 ,Laravel 5.4+ 可用 request()->param2; //结果为 2 ,Laravel 5.4+ 可用 //或者 request...('param1'); //结果为 1 ,Laravel 5.4+ 可用 request('param2'); //结果为 2 ,Laravel 5.4+ 可用 /** 注意:Laravel 在处理动态属性的优先级是

    2.1K30

    3分钟短文:Laravel路子真野啊!路由昵称前缀中间件

    引言 上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据,本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。...laravel为我们考虑到了, 比如路由这样写: Route::get('members/{id}', 'MembersController@show')->name('members.show');...我们来看一下,不附加任何额外的功能的组是如何声明的: Route::group([], function () { Route::get('hello', function () {...为一组路由加前缀,就想注册中间件一样,在配置内手动指定,比如下面这样: Route::group(['prefix' => 'api'], function () { Route::get('/...laravel的花样是真多啊! 不仅如此,我们还可以为路由组声明是指定的命名空间下的控制器所使用的。这样,可以通过把相似功能模块放在相同命名空间下,从而达到路由分组的目的。

    1.5K30

    3分钟短文:Laravel路子真野啊!路由昵称前缀中间件

    引言 上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据, 本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。...laravel为我们考虑到了, 比如路由这样写: Route::get('members/{id}', 'MembersController@show')->name('members.show');...我们来看一下,不附加任何额外的功能的组是如何声明的: Route::group([], function () { Route::get('hello', function () {...为一组路由加前缀,就想注册中间件一样,在配置内手动指定,比如下面这样: Route::group(['prefix' => 'api'], function () { Route::get('/...laravel的花样是真多啊! 不仅如此,我们还可以为路由组声明是指定的命名空间下的控制器所使用的。这样,可以通过把相似功能模块放在相同命名空间下,从而达到路由分组的目的。

    1.6K11

    全局梳理、分析、总结 laravel 的核心概念

    路由器允许响应任何 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); 2....访问控制(节流) Laravel 包含了一个 middleware 用于控制应用程序对路由的访问。如果想要使用, 请将 throttle 中间件分配给一个路由或者一个路由组。...例如,让我们指定一个经过身份验证并且用户每分钟访问频率不超过 60 次的路由组: Route::middleware('auth:api', 'throttle:60,1')->group(function...您可以使用 route:clear 命令来清除路由缓存: php artisan route:clear 04 — 中间件 laravel 的中间件想必大家不会那么陌生吧。它自带了一些中间件。

    6.1K41

    Laravel学习笔记(二)—— 路由,请求接收与转发

    前言 对于新手而言,你可能只需要会使用Laravel就行了,这也是我第一章没写Laravel生命周期的原因。...(~~其实目前我也不是蛮懂,我怕写了被打脸~~)不过,学到后面肯定是要把她(Laravel)摸透的,暂时先留个坑,学会了再来填坑。毕竟,在我写笔记的时候,我也是一个Laravel的新手、初学者。...这就是默认的welcome视图,当我们部署好默认的Laravel项目后,打开浏览器后看到的是Laravel的默认welcome界面,就是web.php路由和welcome.blade.php视图文件起的作用...比如:/user/add、/user/delete这种user组别的可以放在user组下的路由规则中 /admin/add、/admin/delete这种admin组别的放在admin组中。...具体设置方式如下: Route::group(['prefix' => 'user'], function(){ #这里放user组的路由规则 Route::get('add', function

    3.2K01

    使用 Laravel 5.5+ 更好的来实现 404 响应

    Laravel 5.5.10 封装了两个有用的路由器方法,可以帮助我们为用户提供更好的 404 页面。...在 laravel 5.5.10 中,我们有一个新的 Route::fallback() 方法,用于定义当没有其他路由与请求匹配时 Laravel 回退的路由。... @stop 当 Laravel 渲染这个回退(fallback)路由时,会运行所有的中间件,因此当你在 web.php 路由文件中定义了回退路由时,所有处在 web 中间件组的中间件都会被执行...; }); 由于 api 中间件组带有 /api 前缀,所有带有 /api 前缀的未定义的路由,都会进入到 api.php 路由文件中的回退路由,而不是 web.php 路由文件中所定义的那个。...'; })->name('serverFallback'); 原文 Better 404 responses using Laravel 5.5+

    2.2K20

    Laravel 4 小技巧两则

    用 Laravel 作为 PHP 开发框架很久了,但是有些官方文档中没有覆盖到的地方,每隔一段时间又会忘记。最近做了一点简单的整理,顺便记录下来备忘。 1....Route::controller 路由命名: 用 Route::controller 可以减少路由定制中的大量工作,但是有时候需要对某个特定的路由命名以便使用,但是 Route::controller...('admin', 'AdminController'); // 需要对其中的部分方法命名的话: Route::controller('admin', 'AdminController', array...根据系统变量判断当前运行环境 系统默认的判断是否本地环境的方法是根据在 'local' 数组中指定一组作为本地环境的主机名,比如在办公机、Macbook上都要做开发,你就要把两个主机名都写进去,我觉得这样很麻烦...改成了根据 $_SERVER['LARAVEL_ENV'] 来判断,这样我可以在所有开发机中都定义 'LARAVEL_ENV' 的环境变量,值为 'local',于是在开发机就会自动识别为 'local

    1.1K50

    Laravel源码笔记(二)路由

    ::domain('route.domain.name')->get('foo','controller@method')->where('one','(.+)');         此外,可以用路由组的形式定义多条路由...,路由组内共享路由属性,甚至还可嵌套新的路由组。...实际上,所有 laravel 路由都定义在位于 routes 目录下的路由文件中,这些文件内的路由被laravel视为一个大的路由组,在RouteService启动的过程中通过Route门面加载出来(所以路由配置文件不需要声明对...因为对于开发者来说,route文件的配置其实是很少改动的,因此laravel在这里使用了静态文件缓存将解析好的路由规则缓存起来,缓存路径为/bootstrap/cache/routes.php。...->compiled->getRegex(), $path, $matches),这里是带非捕获子命名组的非贪婪模式匹配,因此将返回一个一系列以参数名为索引的子匹配组。

    7.5K40

    laravel 自定义中间件实现身份验证

    通过Laravel 用户认证我们知道了基于 api 的身份验证,实现方式有Laravel Sanctum API 授权 、 Laravel 使用 Json Web Token(JWT) 等,今天介绍一下自定义中间件实现身份验证...中间件 使用中间件需要提前在app/Http/Kernel.php这里配置,分为全局中间件、中间件、中间件组 全局中间件 全局中间件无需主动调用,系统会自动应用到每次请求。...最终我选择不启用该中间件 中间件、中间件组 一、上面提到的Laravel Sanctum API 授权使用的是auth中间件 protected $routeMiddleware = [...'auth' => \App\Http\Middleware\Authenticate::class, ... ]; //比如 Route::group(['middleware' =...> ['auth:sanctum']], function () {} 但在SPA 认证场景下也会使用api中间件组 protected $middlewareGroups = [ ..

    1.8K10
    领券