首页 > 其他分享 > Laravel — P50:路由和依赖注入

Laravel — P50:路由和依赖注入

时间:2023-02-12 14:32:45浏览次数:52  
标签:Laravel 依赖 name request Request P50 id 路由

我们在前几篇文章中介绍了一些依赖注入主题,但现在我们想开始更具体一些。我们终于进入了 Laravel 的更高级部分,并将开始关注 Laravel 特定领域内的特定主题。接下来的几篇文章将处理路由。在本文中,我们将重点关注路由中的依赖注入,这非常简单。

在您的路由中,您可以将任何依赖项键入提示到您的回调签名中。如果您使用控制器,类型提示将出现在方法级别。

use Illuminate\Http\Request;

Route::get('/dependency-route-example', function (Request $request) {
return $request->input('name');
});

您现在可以访问路由,​​Request​​依赖项将自动注入到路由中。

​http://0.0.0.0/dependency-route-example?name=Dino​

其他参数的依赖注入

您可能希望将参数传递给您的路由,并通过类型提示使用依赖注入。你可以这样做。只需确保在所有依赖类型提示之后声明您的参数即可。

use Illuminate\Http\Request;

Route::get('/dependency-route-example/{id}', function (Request $request, $id) {
return $id . ": " . $request->input('name');
});

​http://0.0.0.0/dependency-route-example/33?name=Dino​

访问上面的路线将产生:​​33: Dino​​.

我们可以注入多个依赖项并使用参数吗?当然。在上一篇文章中,我们创建了​​app/Services/CapitalizeStringService​​类。

<?php

namespace App\Services;

class CapitalizeStringService
{
public function capitalize($string)
{
return strtoupper($string);
}
}

要注入和使用此类,我们只需在路由中的 URL 参数之前键入提示即可。

Route::get('/dependency-route-example/{id}', 
function (Request $request, CapitalizeStringService $capitalizeStringService, $id)
{
return $id . ": " . $capitalizeStringService->capitalize( $request->input('name') );
}
);

访问我们的路线现在会产生​​name​​字符串的大写版本:​​33: DINO​​。

只要你相信 Laravel 会在你输入提示时处理依赖注入,你就不需要关心更多了。当我们到达控制器部分时,我们将完全涵盖控制器中的依赖注入。

标签:Laravel,依赖,name,request,Request,P50,id,路由
From: https://blog.51cto.com/u_1213352/6052068

相关文章

  • Laravel — P49:依赖注入
    我希望上一篇文章有意义。依赖注入确实是一个简单的概念。我觉得在你说你知道“Laravel中的依赖注入”之前,你应该完整地理解它。在我们再次进入依赖注入之前,你应该了解Lar......
  • Laravel — P48:依赖注入概念(高级 PHP 概念)
    在你的Laravel职业生涯中,你会多次听到“依赖注入”这个词,所以你不妨熟悉一下它。在我们进入Laravel之前,让我们看看依赖注入作为PHP(或任何编程语言)中的一个概念。我们应......
  • Laravel — P55:路由中的软删除模型
    完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了Laravel中一些比......
  • vue 主路由和子路由
    路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about按钮,页面中就要显示about的内容。Home按钮=>home内容,about按钮=......
  • SpringCloudGateway服务路由
    1使用1.1依赖首先要引入spring-cloud-starter-gateway的依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta......
  • 前端-vue基础96-vue router嵌套路由
      <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Documen......
  • 前端-vue基础96-路由重定向
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • 前端-vue基础98-vue router动态路由匹配
      <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Documen......
  • 前端-vue基础94-Vue路由管理器
     ......
  • 前端-vue基础93-实现简单前端路由
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......