2013-01-18 5 views
8

저는 Laravel PHP 프레임 워크를 사용하고 있으며 몇 가지 사항에 대해 궁금합니다. 기본 application/routes.php 파일이 포함Laravel에서 기본 컨트롤러를 설정하는 방법은 무엇입니까?

Route::get('/', function() 
{ 
    return View::make('home.index'); 
}); 

이 단지보기를 출력하지만, 내가 어떻게 거기에서 컨트롤러를 호출 할 수 있습니까?

위의 전체 경로를 삭제하고 기본 주소 (예 : example.com/)에서 홈 컨트롤러를 사용하는 것으로 보이는 Route::controller('home')으로 바꿀 수 있습니다. 그러나 Route::controller('article')과 같은 다른 컨트롤러는 작동하지 않으며 example.com/article에서만 작동합니다. 기사 컨트롤러를 기본값으로 설정하는 방법은 무엇입니까?

답변

12

그냥 클래스 이름과 메소드 이름 사이 @로, 문자열로 컨트롤러를 전달합니다

Route::get('/', '[email protected]'); 

읽기 the docs (컨트롤러 액션을 가리키는 경로를 등록 제목 하여 예로 이동).

+0

어쨌든 나는 그 부분을 놓쳤다. 그래도 '집'일은 어떨까요? 'Route :: get ('/', 'home @ index')'Route :: controller ('home')'와 동일합니까? – DisgruntledGoat

+0

@DisgruntledGoat - 아니요. 'Route :: get ('/', 'home @ index')'는 오직'/'경로에서만 인덱스 메소드를 등록합니다. 'Route :: controller ('home')'은 그것의 각각의 URL에 매핑 된 모든 메소드를 등록 할 것이다. –

+0

후자는 어떻게 작동합니까? '/'에 전체 컨트롤러를 등록한 다음 '/ example'이 모호 해지지 않으면 'example'이라는 컨트롤러와 'home'컨트롤러의 'example'메서드가 모호해진다. – DisgruntledGoat

2

"/"은 특별한 위치이며 Route::get('/','[email protected]')을 통해 설정할 수 있습니다.

가정용 컨트롤러의 다른 모든 작업에 대해서는 URL에 "/home/action1"또는 "/home/action2"이 있습니다.

저는 "/"에 할당 된 컨트롤러를 만들 필요가 없다는 것을 이해하려고 노력하고 있습니다.

나는 내 대답으로 분명히 희망한다. 다시 이것은 당신의 질문에 대한 시도되지 않은 답변이지만 당신이 길잡이를 다루는 경우에 당신을위한 제안입니다. 나는 당신이 며칠 전과 같은 무대에 있었다. :)

+2

이 게시물은 오래된 게시물이지만 Google에서 가장 인기있는 사이트 중 하나입니다. 누구든지 이것을 발견하면 Route :: 컨트롤러 ('/', 'Controller')를 설정할 때 다른 모든 링크를 끊어 버리는 것이므로 제어기 경로에 기본값 '/'을 사용하는 것은 좋지 않습니다 –

관련 문제