2013-03-17 2 views
1

CakePHP에서 REST 응용 프로그램을 수행 할 때 문제가 발생했습니다. GET /admin/quote_authors/1.json은 나를 'admin_view'가 아닌 'view'동작으로 보냅니다.CakePHP : RESTful 접두사가 붙은 동작

  • route.php :

    Router::parseExtensions('json'); 
    Router::mapResources(array(':controller'), array('prefix' => '/admin/')); 
    
  • QuoteAuthorsController.php :

    public $components = array('RequestHandler'); 
    
    public function admin_view($id) { 
        var_dump('admin view'); 
    } 
    
    public function view($id) { 
        var_dump('view'); 
    } 
    

감사합니다.

+0

당신은 아마 제거해야 접두사의 슬래시. 예 : 'array ('prefix'=> 'admin')'. 접두사는 전체 '경로'가 아닌 접두사의 '값'입니다. http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing – thaJeztah

+0

이미이 도구를 사용해 보았지만 "QuoteAuthorsController :: admin_1 (Action)을 찾을 수 없습니다. " –

+0

내가 여기서 당신을 도울 수 있는지 잘 모르겠다. mapResources()에 대한 많은 경험이 없으므로 그 점도 조사해야한다. – thaJeztah

답변

1

답할 수 없기 때문에 의견을 말할 수 없습니다.

당신은 /admin/quote_authors/view/1.json

그래서 다른 요청이 될 것이다 요청의 작용 부분을 누락하는 것 /관리/같은 : 컨트롤러/: 액션/: 일반적으로 매개 변수는입니다.

그리고, thaJeztah는 접두사의 슬래시를 제거 말했듯 물론, (그것은 당신에게 그 오류를주고 그 이유는, 그것이 실행해야하는 작업으로 매개 변수를 "1"을 고려하는 것은)

+0

슬래시 및보기)? 내가 이해하는 것을 위해, Router :: mapResources()는 컨트롤러 이름과 다른 옵션을 받는다. (mapResources는 http://book.cakephp.org/2.0/en/development/routing.html에서 찾아야한다.) Router :: mapResources()를 호출하고 Router :: resourceMap()을 사용하여 기본값을 변경하십시오. REST 매핑이 절대적으로 필요한가? 또는 간단한 라우터 :: connect()로 작동하게 할 수 있습니까? – Nunser

+1

안녕하십니까, 여기에 json 응답이 있습니다 : { "code": "404", "url": "/ admin/quotes/10.json", " name ":"QuotesController :: admin_10() 작업을 찾을 수 없습니다. "}. Cake는 REST를 할 때 자동으로 요청을 올바른 동작으로 리디렉션하므로 요청에 : action 부분이 필요하지 않습니다. angularjs와 함께 REST를하는 것은 꽤 쉬웠지만 이제는 기본 경로를 사용자에게 제공 할 것입니다. 감사합니다 –

+0

이 이슈에 대한 유용한 링크 : http://blog.rudylee.com/2012/11/28/no-prefix-support-for-mapresources-in-cakephp-2-x/ –

관련 문제