2016-06-15 5 views
0

저는이 이상한 문제를 해결하려고 노력해 왔습니다. POST GET 메서드를 사용하여 특정 함수를 수행하라는 요청을 리디렉션하기 만하면됩니다. 처음에는 이것이 단순한 시나리오라고 생각했지만 조금 어려웠습니다.POST | GET 요청을 처리 할 올바른 클래스 -> 메서드가있는 경우에도 Fatfreeframework (F3)이 "HTTP 405 Method Not Allowed"메시지를 계속 표시하는 이유는 무엇입니까?

 

    [routes] 
    GET /pub/adsprocess/@command/@adsid=AdsController->processAds 

내 "보기"파일의 코드 :이 같은

 

     < a href="/pub/adsprocess/yes/1" >YES </a> 
     < a href="/pub/adsprocess/no/2" >NO </a> 

내 컨트롤러의 모양을

내 라우팅 (GET 방식에 대한) 구성이가

 

    class AdsController extends Controller 
    { 
     function processAds() 
     { 
      $command = $this->f3->get('PARAMS.command'); 
      $ads_id = $this->f3->get('PARAMS.adsid'); 

      /*some more process here...*/ 
     }  
    } 

내가보기에 모든 것이 나에게 좋아 보인다. 그러나 이것 모두는 작동하지 않습니다. F3은 계속 "Method Not Allowed HTTP 405"오류 메시지를 보여줍니다. 그리고 POST 메서드를 사용할 때도이 오류 메시지가 그대로 유지됩니다.

어디서 볼 것인지 잘 모르겠습니다. 이 문제에 대한 단서 또는 대안 접근법은 높이 평가할 것입니다. 내가 언급 할 수

감사합니다,

Sigit

+0

이 링크에 액세스하는 데 사용하는 URL을 표시 할 수 있습니까? – Daniel

+0

컨트롤러 이름 공간이 맞습니까? 또한 공백을 고려하십시오 'GET/pub/adsprocess/@ 명령/@ adsid = AdsController-> processAds' –

+0

@ 대니얼 : 여기 URL은 http : //retail.localhost/pub/adsprocess/yes/1 – dewa19

답변

0

, 우리는 오토로더 변수를 볼 수 있습니까?

\Controller\AdsController->processAds

AdsController.php 파일을 추가해야합니다 : 당신이 컨트롤러 폴더에 AdsController를 배치하고 오토로더에 컨트롤러 폴더를 추가하지 않은 경우 내 말은, 당신은 이런 식으로 접근 할 필요가 작품 네임 스페이스 : 당신이 오토로더 변수에 추가 않은 경우

Namespace Controller; 
class AdsController extends \Controller 
{ 
    function processAds() 
    { 
     $command = $this->f3->get('PARAMS.command'); 
     $ads_id = $this->f3->get('PARAMS.adsid'); 

     /*some more process here...*/ 
    }  
} 

, 그것의 당신의 방법에 작업을해야합니다.