Как я могу использовать другую модель для компонента Auth в CakePHP 2.0.4? - PullRequest
2 голосов
/ 25 января 2012

Это выглядит тривиально, но я действительно не могу найти, где я могу это изменить. Я хочу использовать свою модель "Player" вместо User, но каждый раз, когда я захожу на / Players / Login, он перенаправляет меня на страницу "Missing Controller" и ссылка меняется на /users/login.

.

Я пытался:

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

Ответы [ 3 ]

4 голосов
/ 25 января 2012

Полагаю, проблема в том, что вы не предоставляете систему аутентификации. Вы предоставляете некоторые настройки, которые будут использоваться во всей системе аутентификации, которая будет выбрана, но вы еще не выбрали ее (вы должны предоставить хотя бы одну, такую ​​как Form, Basic, Digest, ecc ..).

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

(или то же самое в массиве $components)

0 голосов
/ 12 мая 2015

Используйте этот код в контроллере:

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.

Спасибо, Суджай

0 голосов
/ 24 апреля 2014

Вы должны сделать это

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