2013-07-02 4 views
0

cakephp 2.x에서 작업 중입니다. 내 웹 응용 프로그램 URL은 다음과 같습니다. "http://www.myweb.com/" .. 그런 다음 로그인 후 사용자가 시작된 페이지로 리디렉션됩니다. " http://www.myweb.com/users/gettingstarted "..... 나는이 같은 URL을 원하는 것입니다 원하는 ...케이크 PHP는 사용자 정의 URL을 설정

는 그래서는 컨트롤러 이름을 기운이 작업을 수행하기 위해 때문에 CakePHP의에서을 gettingstarted
http://www.myweb.com/gettingstarted... 

u는 컨트롤러의 경우를 만들 캔트 당신은 당신의 DB에 비슷한 테이블 이름을 가지고 있지 않습니다 .. 당신이 이것을 얻을 수 있습니다 .. 가능할 수도 있습니다 ..하지만 이걸 어떻게 달성 할 수 있을지 모르겠군요 ..

+0

당신에게로 리디렉션합니다 당신의 UsersController의 로그인 작업을 변경 * db에 비슷한 이름이 없으면 컨트롤러를 만들 수 있습니다 ...하지만 무시하면 원하는 것을 더 잘 설명 할 수 있습니까? 나는 당신이'http : //www.myweb.com/gettingstarted ...'url을 원한다는 것을 알았지 만 그것은'gettingstarted'라고 다른 컨트롤러에서 액션이되기를 원합니 까? 'UsersController-> gettingstarted'와 같은 것입니다. 명확히하십시오. – Nunser

+0

@ Nunser 미안하지만 정확히 ... 내가 원하는 것은이 "com/gettingstarted"와 같은 URL을 원한다는 것입니다.이를 달성하기 위해서는 .. 내가 원하는 기능을하지 않는 컨트롤러를 만들어야합니다. 다른 컨트롤러에서 이름을 알아내는 중 ... 컨트롤러 이름없이 함수를 호출하고 싶습니다. url에 들어 있습니다. 예를 들어, $ this-> redirect $ this-> redirect ('/ gettingstarted')와 같은 리디렉션을 원합니다. – hellosheikh

답변

0

나는 당신이 당신의 UsersControllergettingstarted 조치를이 있으리라 믿고있어 그와

//this will send www.web.com/gettingstarted to UsersController->gettingStarted() 
Router::connect('/gettingstarted', 
       array('controller' => 'users', 'action'=>'gettingstarted')); 
//this is the default route for www.web.com 
Router::connect('/', array('controller' => 'users', 'action' => 'index')); 

(바람직하게는 다른 규칙 전) routes.php에 규칙을 추가합니다. 아, 그리고 당신은 행동에 변수를 전달하지 않습니다. 그렇지 않으면 규칙이 약간 달라집니다.

"url changes"에 대해서는 Routes doc을 읽으십시오. URL을 관리하는 방법을 아는 것이 유용 할 수 있습니다. 당신은 사용자가 성공적으로 로그인하면 시작 페이지로 리디렉션하려면

편집 ,

public function login() { 
    //all your login actions 
    //if user is logged in 
    $this->redirect(array('controller'=>'users', 'action'=>'gettingstarted')); 
} 

www.web.com/gettingstarted

+0

그래 .. 너는 나에게 .. 이제 다음 질문은이 라우터를 대체해야한다. :: connect ('/', array ('controller'=> '사용자', 'action'=> 'index')); .. 왜냐하면 내가 이것을 할 때 www.web.com ..이 URL로 인해 내 인덱스 페이지에 와서 .. 이걸로 대체해야합니다 .. 난 그렇게 생각하지 않아 그 좋은 생각 .. 왜냐하면 인덱스 페이지에서 나는 로그인 페이지를 가지고 – hellosheikh

+0

정말 당신이 귀하의 사이트를 원하는 방법에 따라 달라집니다 (정말 다른 질문과 관련이 많지 않습니다). "시작하기"페이지를 "www.web.com"을 입력 할 때 처음 보는 페이지로 만들려면 사용자가 먼저 바꾸어야합니다. 하지만 개인적으로 추천하지는 않습니다. "시작하기"는 일반적으로 색인에 링크 (링크)로 표시하여 사용자가 볼 수있는 강제 옵션이 아닌 사이트를보다 사용자 친화적으로 만드는 것입니다. 시작했는지 여부. * 그러나! * 그 규칙을 완전히 지우지 않으면, 그 규칙을 지우면 케이크는 "www.web.com"으로 무엇을해야할지 모릅니다. – Nunser

+0

팁을 주셔서 감사합니다. .. 로그인을 한 후에는 'www.web.com/gettingstarted'와 같은 URL을 만들 수 없다고 말하고 있습니다 .. 지금은 새로운 컨트롤러를 만든 경우에만 가능합니다. 그럼 인덱스 기능에 대한 모든 기능을 넣어 ...하지만 문제는 .. 케이크가 시작되고 db 이름에 테이블을 가지고 말을하는 erros를 던지고있다 – hellosheikh