AJAX를 통해 컨트롤러의 기능을 호출 할 수 있도록 URL 라우팅을 작동 시키려고합니다. AJAX 호출은 "ajax/{컨트롤러의 함수 이름}/{함수에 전달할 ID}"형식으로 이루어집니다.URL 라우팅이 작동하지 않습니다.
나는 내 routes.yml에 다음을 추가했습니다 :
Director:
rules:
'ajax': 'TakeActionPage_Controller'
을 내 TakeActionPage_Controller, 나는이 :이 작동하지 않습니다
private static $url_handlers = array(
'electoratesfrompostcode/$ID' => 'electoratesfrompostcode',
);
public function electoratesfrompostcode(SS_HTTPRequest $request)
{
$id = (int)$request->param('ID');
return $this->getElectoratesFromPostcode($id);
}
. 나는 TakeActionPage의 URL에 ?debug_request=1
를 추가 할 때 내가 얻을 :
Debug (line 250 of RequestHandler.php): Testing 'electoratesfrompostcode/$ID' with '' on TakeActionPage_Controller
Debug (line 250 of RequestHandler.php): Testing '$Action//$ID/$OtherID' with '' on TakeActionPage_Controller
Debug (line 258 of RequestHandler.php): Rule '$Action//$ID/$OtherID' matched to action 'handleAction' on TakeActionPage_Controller. Latest request params: array ('Action' => NULL, 'ID' => NULL, 'OtherID' => NULL,)
Debug (line 184 of RequestHandler.php): Action not set; using default action method name 'index'
내가 그 디버그 메시지의 만들기 위해 무엇을 정말 모르겠어요. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? $allowed_actions
배열
public static $allowed_actions = array('electoratesfrompostcode');
를 추가
debug_request의 실제 URL은 무엇입니까? 또한 페이지 컨트롤러' '$ Action // $ ID/$ OtherID''에이 규칙이 있다고 말했기 때문에 왼쪽 위에있는 모든 코드를 붙여 넣었습니까?하지만 코드에는 없습니다. – colymba