2014-11-27 11 views
1

나는 문제가 있으며 무엇이 잘못되었는지 전혀 모른다.올바르게 리디렉션되지 않는 CakePHP 라우팅

간단한 기본 인증 시스템을 구축했습니다. 하지만 내가 주목하는 것은 측면 표시 줄에서 URL- 예를 들어 CakePHP의에서 generatet되는 것과 다른 점이다

http://localhost/sitename/users 

도구 모음에 표시되는 URL입니다.

내가 할 경우 :

echo Router::url($this->here, true); 

결과는 다음과 같습니다

http://localhost/sitename/sitename/users 

이 사이트는 여전히 작동하지만, 시간이 지나면 시간이 같은 오류가 발생합니다 그래서 내가

http://localhost/sitename/sitename/users/ 

Missing Controller 

Error: SitenameController could not be found. 

Error: Create the class SitenameController below in file: app\Controller\SitenameController.php 
<?php class SitenameController extends AppController { 

} 

그 문제를 일으키는 원인이 무엇인지 모르겠다. ... 누군가, 누구든지 나를 도울 수 있다면 나는 아주 좋아할 것이다. 그것 ...

대단히 고마워요. $url PARAM이 null하는 방법입니다 경우 실제 컨트롤러/액션에 주소를 찾을 수

Router::url(null, true); 

를 사용해야하므로

답변

0

앱은 서브 디렉토리에 있습니다. here을 읽어보십시오. 이 책에서

:

$this->request->here 현재 요청의 전체 주소가 포함되어 있습니다.

전체 주소에는 서브 디렉토리도 포함됩니다. 따라서 Router::url()을 사용하여 $full 매개 변수를 true으로 설정하면 하위 디렉토리가 "중복"됩니다.

+0

재생을위한 고맙습니다. @rocknrollcanneverdie. 하지만 mi가 걱정되는 이유는 왜 그런 방식으로 생성되는지, 즉 오류가 발생했을 때를 의미하거나 그러한 종류의 오류를 방지하는 구체적인 방법을 말합니다. – Johnny

+0

컨트롤러 오류가 누락 된 이유는 잘못된 URL입니다. 위의 대답을 따를 경우 CakePHP가 생성 한 잘못된 URL을 피할 수 있습니다. – rocknrollcanneverdie

+0

라우터 :: 연결 ("/", 배열 ("컨트롤러"=> "사용자", "동작"=> "인덱스", "홈"))); // 라우터 :: 연결 ("/", 배열 ("컨트롤러"=> "페이지", "동작"=> "표시", "집"))); 라우터 :: connect ("/ 페이지/*", 배열 ("컨트롤러"=> "페이지", "동작"=> "표시")); CakePlugin :: routes(); 에 CAKE가 필요합니다. "구성". DS. "routes.php"; ' 이것은 내 경로이며 문제가있는 위치를 알지 못합니다./.. ?? @rocknrollcanneverdie – Johnny