是否可以在Laravel中将路由参数传递给控制器​​构造函数? [英] Is it possible to pass a route parameter to controller constructor in Laravel?

查看:156
本文介绍了是否可以在Laravel中将路由参数传递给控制器​​构造函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以向控制器构造函数注入路由参数(或路由段)?

Is it possible to inject a route-paramter (or an route segment) to the controller-constructor?

您找到一些代码来澄清我的问题.

You find some code to clarify my question.

class TestController{

    protected $_param;

    public function __construct($paramFromRoute)
    {
        $this->param = $paramFromRoute;
    }

    public function testAction()
    {
        return "Hello ".$this->_param;
    }
}

----------------------------------------------------

App::bind('TestController', function($app, $paramFromRoute){
    $controller = new TestController($paramFromRoute);
    return $controller;
});

----------------------------------------------------

// here should be some magic
Route::get('foo/{bar}', 'TestController'); 

推荐答案

无法注入它们,但是您可以通过以下方式访问它们:

It's not possible to inject them, but you have access to all of them via:

class TestController{

    protected $_param;

    public function __construct()
    {
        $id = Route::current()->getParameter('id');
    }

}

这篇关于是否可以在Laravel中将路由参数传递给控制器​​构造函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆