2014-03-19 2 views
1

MVC를 처음 접했을 때 (실제 시나리오에서는 처음 사용했습니다) 컨트롤러가 어떻게 작동하는지 혼란 스럽습니다.RESTful 컨트롤러는 어떻게 Laravel 4에서 제대로 작동합니까?

Laravel 설명서를 읽은 후 사이트 로딩 (다른 사이트가 함께 연결됨), 페이지, 관리자 등 일반적인 작업의 경우 RESTful 컨트롤러가 필요하다는 결론이 나왔습니다.

간단한 작업을 위해 효과가있었습니다. 사용하기 쉽고 재미있었습니다.

Route::controller('admin', 'AdminController'); 

내가

public function getProduct($id) 

같은 기능을했다하고 일 :이 같은 경로를했다. (특정 제품을 얻는 데 사용되었습니다 : ../admin/product/1)

이제 좀 더 복잡한 것을 원합니다. Like

../sites/loadsite/mysite/mypage/mysubpage/123?myoption=yes 

어떻게하면됩니까? 어떻게 시작해야합니까? 어떻게 문제에 접근합니까? 모든 일에 Route::get()을 사용해야합니까, 아니면이 방법을 "더 멋지게"할 수 있습니까? 도시 된 바와 같이

http://laravel.com/docs/controllers#resource-controllers

당신은 쉽게 특정 모델에 표준 REST 경로를 생성 할 때 사용하거나, 수

답변

2

Laravel 제어기 방법 대응 위해 RESTful 한 경로를 생성하기위한 "자원 컨트롤러"헬퍼를 제공한다 laravel.com에 제공된 예제에서 특정 라우트로만 제한 할 수 있습니다. 그들이 제공하는 테이블은 주어진 경로가 주어진 액션/컨트롤러 메소드에 어떻게 매핑되는지 보여줍니다. 당신이주는 URL의 예에 대해서는

:

의 URL /sites/loadsite/mysite/mypage/mysubpage/123에 관한 : ../sites/loadsite/mysite/mypage/mysubpage/123?myoption=yes, 나는 두 가지, url 및 쿼리 문자열로 질문을 깰 수 있습니다. 이것은 많은 사람들이 "RESTful"경로로 간주하지 않습니다. 페이지 및 서브 페이지 대신 모델 및 때때로 서브 모델을 고려해야합니다. URL의 끝에 쿼리 ​​문자열에 관한 /model/{id}/submodel/[id]

: ?myoption=yes : 일반적으로 일반적으로 깊이의 단일 층보다 더 많은 것을 의미 깊게 중첩 된 경로를 피하기 위해 가장 좋은 방법으로 간주됩니다 Laravel에 의해 문자열 매개 변수를 쿼리에 대한 액세스를 제공합니다 Input::get("Param") 기능을 사용합니다. 경로에 쿼리 문자열 매개 변수를 지정할 필요가 없으며 단순히 컨트롤러 메서드에서 액세스 할 수 있습니다.

관련 문제