这是我的路线:

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
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top