문제

내 경로는 다음과 같습니다.

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
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top