CakePHP $ this-> данные пустые в ChildController, не пустые в AppController - PullRequest
1 голос
/ 14 апреля 2011

Я использую стабильную версию CakePHP 1.3.8, и у меня проблема с данными формы. Когда я отправляю свою форму, я могу видеть данные, содержащиеся в $this->data, когда я отлаживаю в AppController, но она пуста в моем дочернем контроллере, где действие.

Вот мой AppController:

class AppController extends Controller {
        var $components = array('Auth', 'Session');

        function beforeFilter() {
                // Data is not empty here
                $this->Auth->authenticate = ClassRegistry::init('User');
                $this->Auth->allow('register', 'index');
                parent::beforeFilter();
        }
}

Вот мой UsersController:

class UsersController extends AppController {

        var $name = 'Users';
        function register() {
                // Data empty at this point
                if(!empty($this->data)) {
                        if($this->data['User']['password'] == $this->Auth->password($this->data['User']['password_confirm'])) {
                                $this->User->create();
                                $defaultRole = $this->User->Role->getDefaultRole();
                                $this->data['User']['role_id'] = $defaultRole['id'];
                                if($this->User->save($this->data)) {
                                        $this->redirect(array('action' => 'index'));
                                }
                        }
                }
        }
}

Форма публикуется в / users / register

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Также ищите неопределенные теги формы в представлениях или элементах.

0 голосов
/ 14 апреля 2011

Я понял, в чем проблема.Я использую собственный метод хеширования в своей модели Users, и в функции hashPasswords я не возвращал объект $ data.Таким образом, $ data только что был поглощен функцией hashPasswords, чтобы больше никогда его не видеть.

Спасибо за просмотр, и я надеюсь, что это поможет вам, если вы допустили подобную ошибку!

...