我们在前几篇文章中介绍了一些依赖注入主题,但现在我们想开始更具体一些。我们终于进入了 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