这是我的路线:
Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));
我如何在__构造函数中检索$companyId参数,以避免在所有操作中单独检索它?
如果你想在控制器的__construct中获取参数,你可以这样做:
class HomeController extends 'BaseController
{
public function __construct()
{
$this->routeParamters = Route::current()->parameters();
}
}
它将返回路由参数的键值列表(例如:['companyId' => '1']
) @参见'Illuminate'Routing' route
您还可以使用getParameter()或parameter()方法获取特定的参数。
注意:我不确定这是不是一个好主意。也许有一个更优雅的方法来解决你的问题。
如果你想让这个过程更简单,路由模型绑定似乎是最简单的方法。你不必在控制器的每个动作中获取正确的Model实例,而是在路由过程中将正确的Model传递给控制器。
但是你必须使用Route::resource。
Route::bind('company', 'Company');
Route::resource('company', 'HomeController');
然后你有一个category的实例传递给你的控制器。例如/company/1:
public function show($company)
{
// Here you can use, for instance, $company->name
}