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 \Illuminate
outing
oute
다음을 사용하여 특정 매개변수를 얻을 수도 있습니다. getParameter() 또는 매개변수() 행동 양식.
메모: 이것이 그렇게 좋은 생각인지는 잘 모르겠습니다.문제를 해결하는 더 우아한 방법이나 더 나은 접근 방식이 있을 수 있습니다.
다른 팁
프로세스를 더 간단하게 만들려면 경로 모델 바인딩이 가장 쉬운 방법 인 것 같습니다.컨트롤러의 모든 작업에서 올바른 모델 인스턴스를 가져 오는 대신 라우팅 프로세스 중에 오른쪽 모델을 컨트롤러에 전달합니다.
그러나 Route :: Resource를 사용해야합니다.routes.php :
Route::bind('company', 'Company');
Route::resource('company', 'HomeController');
.
다음 컨트롤러에 전달 된 카테고리의 인스턴스가 있습니다.예를 들어 / 회사 / 1 :
public function show($company)
{
// Here you can use, for instance, $company->name
}
. 제휴하지 않습니다 StackOverflow