Laravel在类构造函数中检索param

时间:2014-06-02 18:17:37

标签: php laravel laravel-4

这是我的路线:

Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));

如何在__constructor中检索$ companyId参数,以避免在我的所有操作中单独检索它?

2 个答案:

答案 0 :(得分:3)

如果你想获得控制器的__construct中的参数,你可以这样做:

class HomeController extends \BaseController
{
    public function __construct()
    {
        $this->routeParamters = Route::current()->parameters();
    }
}

它将返回路径参数的键值列表(例如:['companyId' => '1']@see \Illuminate\Routing\Route

您还可以使用getParameter()parameter()方法获取特定参数。

注意:我不确定这是个好主意。可能有一种更优雅的方式来解决或更好地解决您的问题。

答案 1 :(得分:0)

如果您想简化流程,路由模型绑定似乎是最简单的方法。您无需在控制器的每个操作中获取正确的模型实例,而是在路由过程中将正确的模型传递给控制器​​。

但你必须使用Route :: resource。在routes.php中:

Route::bind('company', 'Company');
Route::resource('company', 'HomeController');

然后您将一个类别实例传递给您的控制器。例如/ company / 1:

public function show($company)
{
    // Here you can use, for instance, $company->name
}