php laravel问题求助

  1. Laravel 5 如何获取当前控制器的function名称?

经常看到Request $request这样的写法,问下这个知识点叫什么?

public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }
public function store(Request $request)
    {
        //
    }
阅读 4.5k
5 个回答

依赖注入

把一个对象赋值到属性中调用

第一个问题:
在Laravel中Route::current()->getActionName(); 可以获取当前Action的详细名称,可能不你直接想要的结果,自己对上述方法返回的结果做下处理就好了。

第二个问题:

这里的 $request 参数是 Illuminate\Http\Request ,通过依赖注入传递给Controller。

在Laravel中Controller都可以在顶部use Illuminate\Http\Request 后,在参数里面使用 Request。

而 Request 包含了客户端发送过来的请求内容。

这货用的依赖注入,这功能让性能非常低下

这个本身不叫依赖注入,这就是 PHP 的类型提示,只不过用类型提示(type-hint)实现了依赖注入这种所谓的设计模式而已。

这种是依赖注入,你在方法的形参上写Request $request,表示你需要Request这个类,或者这个类的实现,用$request这个变量来接收.实际上你并没有提供Request类或者相关的实例化,但是却能跑起来,因为框架帮你依赖注入了这个Request类.Request常常用于请求的,处理请求的时候会依赖这个