2012-01-25 6 views
2

사소한 것처럼 보이지만 실제로 변경할 수있는 곳을 찾을 수 없습니다. 사용자 대신 "플레이어"모델을 사용하고 싶지만,/players/login을 할 때마다 "누락 된 컨트롤러"페이지로 리디렉션되고/users/login에 대한 링크가 변경됩니다.CakePHP 2.0.4에서 Auth 구성 요소에 대해 다른 모델을 사용하려면 어떻게해야합니까?

public $components = array(
    'Session', 
    'Auth' => array(
     'authenticate' => array('all' => array('userModel' => 'Player')) 
    ) 
); 

function beforeFilter() { 
    $this->Auth->authenticate = array('all' => array('userModel' => 'Player')); 
} 

편집 :

내가 노력 배열 도움이 $ 구성 요소에

'loginAction' => array('controller' => 'players', 'action' => 'login') 

해결, 생각 : D

+0

PlayersController가 있습니까? 이 코드는 어디에 두는거야? – entropid

+0

@Entropy 물론 PlayersController가 존재하며 이것을 AppController에 넣을 것입니다. 나는 또한 PlayersController에서 parent :: beforeFilter()를하고있다. – lauriys

답변

4

인증 시스템을 제공하지 않는 것이 문제라고 생각합니다. 선택한 모든 인증 시스템에서 사용할 수 있도록 일부 설정을 제공하지만 아직 하나도 선택하지 않았습니다 (양식, 기본, 다이제스트, ecc 등 하나 이상을 제공해야합니다).

$this->Auth->authenticate = array(
    'all' => array('userModel' => 'Member'), 
    'Form', 
    'Basic' 
); 

(또는 $components 배열 같은) 당신이해야 할

+0

나는 그것들이 무엇인지 이해하지 못한다. 양식을 사용하여 로그인하려면 양식을 추가해야합니까? – lauriys

+0

글쎄, 당신은 어떤 식 으로든 당신의 사용자를 식별해야한다. 그렇지 않으면 CakePHP가 어떻게 로그인했는지 알 수 있을까? 아마 이것의 읽는 것을 시도하십시오 : http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html. – entropid

+0

예, 양식을 사용하여 로그인 한 경우 페이지에 설명 된대로 로그인 작업을 설정하면 '양식'을 추가해야합니다. – entropid

0

그래서

public $components=array(
    'Session', 
    'Auth'=>array(
     'authenticate'=>array(
      'Form'=>array(
       'userModel'=>'Player', 
      ) 
     ), 
     'loginAction'=>array('controller'=>'Players', 'action'=>'login'), 
+0

이 질문은 2 살입니다; 더 이상 PHP를 사용하지 않습니다 ... – lauriys

+0

다른 사람을 도울 수 있습니다. – Ash

0

사용 컨트롤러에서이 코드 :

public $components = array(
    'Auth' => array(
    'loginRedirect' => array(
     'controller' => 'applications', 
     'action' => 'index' 
    ), 

    'logoutRedirect' => array(
     'controller' => 'applications', 
     'action' => 'login' 
    ), 

    'authenticate' => array(
      'Form' => array(
       'passwordHasher' => 'Blowfish', 
       'userModel' => 'Application' 
      ) 
     ),  
    ) 
); 

가에 필요하지 마십시오 beforeFilter() 함수에 대한 코드를 추가하십시오. $ 구성 요소가 Auth 구성 요소를로드합니다.

감사합니다. 수예

관련 문제