Laravel 在类构造函数中检索参数[重复]
题
这是我的路线:
Route::controller('/app/{companyId}/', 'HomeController', array('before' => 'auth'));
如何在 __constructor 中检索 $companyId 参数以避免在我的所有操作中单独检索它?
解决方案
如果你想获取控制器的 __construct 中的参数,你可以这样做:
class HomeController extends \BaseController
{
public function __construct()
{
$this->routeParamters = Route::current()->parameters();
}
}
它将返回路由参数的键值列表(例如: ['companyId' => '1']
) @see \照亮\路由\路线
您还可以使用以下命令获取特定参数 获取参数() 或者 范围() 方法。
笔记: 我不确定这是否是一个好主意。可能有更优雅的方法来解决您的问题或更好的方法。
其他提示
如果您想让过程更简单,路由模型绑定似乎是最简单的方法。您不必在控制器的每个操作中获取正确的模型实例,而是在路由过程中将正确的模型传递给控制器。
但你必须使用 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
}
不隶属于 StackOverflow