0

라우트 내부의 함수를 사용하여 컨트롤러 이름을 반환해야합니다. 이것이 내 라우터 코드입니다.라우트에서 laravel의 함수를 사용하는 방법

Route::group(['middleware'=>'auth'],function(){ 
    Route::Resource('profile', return_controller(session()->get('category'))); 
}); 

function return_controller($category_id) { 
    switch ($category_id) { 
     case 1: return 'ServicesHallController'; 
      break; 
     case 2: return 'ServicesBeautycenterController'; 
      break; 
     case 3: return 'ServicesDressController'; 
      break; 
     case 4: return 'ServicesCarController'; 
      break; 
     case 5: return 'ServicesPhotographyController'; 
      break; 
     case 6: return 'ServicesHoneymoonController'; 
      break; 
    } 
} 
+0

대신 특정 컨트롤러 나 요청을 라우팅하기위한 컨트롤러에 요청을 보낼 미들웨어를 사용하십시오. – jaysingkar

+0

'session() -> get ('category')'는'category_id'를 리턴 할 것이고 카테고리? –

답변

0

수표를 처리하려면 미들웨어를 사용해야합니다. controller_returns 함수를 미들웨어로 변환하십시오.

그렇지 않으면 laravel이 PHP이므로, 문자열이 필요하고 해당 함수가 작동해야하는 문자열을 반환하는 함수를 호출하면. 이 아닌 경우은 반환 된 문자열에서 네임 스페이스를 잊었을 수 있습니다.

exemple : '이름 \ 공간 \의 컨트롤러 명'

그리고 그것은 당신의 세션 저장소가 비어 있지 않은 경우 확인이 작동하지 않습니다 아직합니다.

0

나는 조회 배열 컨트롤러 이름을 넣어과 같이 인라인 문자열로 액세스 할 것입니다 : 당신이 원하는 경우

$controllers = [ 
    1 => 'ServicesHallController', 
    2 => 'ServicesBeautycenterController', 
    3 => 'ServicesDressController', 
    4 => 'ServicesCarController', 
    5 => 'ServicesPhotographyController', 
    6 => 'ServicesHoneymoonController', 
]; 

Route::group(['middleware'=>'auth'],function(){ 
    Route::Resource('profile', $controllers[session()->get('category')]); 
}); 

, 당신은 설정 배열로 컨트롤러 룩업 테이블을 넣을 수 있습니다. 배열은 선택 구조보다 더 쉽게 이식 가능하고 유지하기 쉽습니다.