当前位置: 首页 > 知识库问答 >
问题:

lavarel - middleware的位置应该在哪里?

廖永长
2024-04-25

下面这2段代码有区别吗?
我好奇为啥都是生成的,位置还变了。。。

laravel 11

<?phpuse Illuminate\Http\Request;use Illuminate\Support\Facades\Route;Route::get('/user', function (Request $request) {    return $request->user();})->middleware('auth:sanctum');
<?phpuse Illuminate\Http\Request;use Illuminate\Support\Facades\Route;Route::middleware(['auth:sanctum'])->get('/user', function (Request $request) {    return $request->user();});

共有1个答案

郭逸清
2024-04-25

从结果上,没啥区别,内部运行有一些小区别。

Route Facade 实际调用的是 \Illuminate\Routing\Router,里面先调用 get, post, put, patch, delete, options, any 等方法回返回一个新的 \Illuminate\Routing\Route 对象,后续定义的 middleware 都是在这个对象上定义的。

先调用 middleware 返回的是一个 \Illuminate\Routing\RouteRegistrar 对象,当在他的后面调用 get, post, put, patch, delete, options, any 方法时,又会自动回到 Router 对象上调用对应的这些方法。

理论上,前者性能会更好,但是实际中几乎可以忽略不计。

 类似资料:
  • 我正在尝试编辑简单的Andorid应用程序build.gradle 我应该添加https://developer.android.com/studio/build/application-id 我应该把andorid{...}放在哪里?

  • 问题内容: 我对应该在哪里放置我的虚拟环境感到困惑。 在我的第一个django项目中,我使用以下命令创建了该项目 然后我进入djangoproject目录并运行命令 在与内部目录相同级别上创建了虚拟环境目录。 这是为特定项目创建virtualenv的错误位置吗? 我给人的印象是,大多数人将所有virtualenvs放在一个完全不同的目录中,例如,然后使用virtualenvwrapper在它们之间

  • 我已经将ViewPager和number of Fragment实现为子级,这里每个子级都覆盖自己的。 在我的应用程序中,导航行为是随机的,不是每次都有顺序。因为页面查看器执行缓存来加载额外的子级,这就是我的问题所在。我不确定何时应该初始化/释放子类成员。 需要你们的建议,在这种情况下使用PageViwer是否更好,或者我应该为每个组件使用传统的活动流。

  • 问题内容: 我正在使用OS X 10.10。尝试与我们团队的私有Docker注册中心进行通信时,它一直给我这样的错误: 在Ubuntu系统上,可以通过添加到配置文件中来解决此错误,如下所示: Mac OS是否有类似的配置文件可在其中添加选项? 问题答案: 您必须将其设置为Docker Machine的/ Boot2Docker配置文件: / var / lib / boot2docker / pr

  • 我正在尝试为没有它们的包装提供类型: 我在带有打字稿 2.4.2 的 webpack 中使用 ts-loader,并且在 tsconfig.json 中设置了以下类型根: 我试图模仿: < code>index.d.ts中包含以下内容: 但是错误仍然存在。我做错了什么?我应该把那些自定义的. d.ts文件放在哪里? 和任何其他类型根之间有什么区别?为什么TypeScript会区别对待它们?

  • 我使用的是OS X 10.10。当尝试与我们团队的私有docker注册表通信时,它不断给我这样的错误: 在Ubuntu系统上,可以通过将添加到配置文件中来解决此错误,如下所示: Mac OS是否有类似的配置文件,可以在其中添加选项?