Почему у меня в Cake PHP ошибка вызова функции-члена _setnew () на ноль? - PullRequest
0 голосов
/ 05 апреля 2020

У меня маленькая проблема. Я новичок, и я придерживаюсь этого. У меня есть форма для регистрации пользователя. Но после принятия кнопки «Отправить» у меня появляется ошибка:

Вызов функции-члена _setnew () при нулевой ошибке: произошла внутренняя ошибка.

Трассировка стека [внутренняя функция] → StronaController-> registry () CORE \ Cake \ Controller \ Controller. php строка 499 → ReflectionMethod-> invokeArgs (StronaController, массив) CORE \ Cake \ Routing \ Dispatcher. php строка 193 → Контроллер-> invokeAction (CakeRequest) CORE \ Cake \ Routing \ Dispatcher. php строка 167 → Dispatcher -> _ invoke (StronaController, CakeRequest) APP \ webroot \ index. php строка 117 → Dispatcher-> рассылка (CakeRequest, CakeResponse)

Это мой код:

<form class="mainForm" method="POST" action="">
  <input type="text" name="data[User][email]" placeholder="Login">
    <br>
  <input type="password" name="data[User][password]" placeholder="Passwort">
    <br>
  <input type="submit" value="Registrieren">                        
</form>
public function registry() {
        $el = array();
        $el['helper']['menu'] = 'registry';
        $el['helper']['title'] = 'Registrierung';
        $el['helper']['meta'] = '<title>Kogni-fit / Registrierung</title>
        <meta name="identifier-url" content="https://kogni-fit.at/registrierung" />
        <meta name="description" content="Kogni-Fit">';

        if($this->request->is('post')) {
            $data = $this->data;
            //TUTAJ POWINNA BYĆ WALIDACJA!
            $this->User->_setnew($data['User']);
            //$this->vd($data);

            // Przekierowanie z komentarzem

            $this->Session->setFlash('Benutzer hinzugefügt');
            $this->redirect(array('action'=>'logowanie'));

        }

        $this->set('el',$el);
    }
class CmsController extends AppController {

public function beforeFilter() {
        parent::beforeFilter();
        $this->layout = 'cms';
        //$this->Auth->allow();
        $this->Auth->allow('blog');
        $check_user = $this->Auth->user();

        if($check_user['role'] != 'admin') {

            $this->redirect(array('action'=>'index', 'controller'=>'strona'));
        }

    }
}
class User extends AppModel {

    public function _setnew($user) {

        //$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
        $user['password'] = AuthComponent::password($user['password']); //hashuje hasło przed zapisem do bazy

        $this->save($user);
    }
}

Буду благодарен за помощь

1 Ответ

0 голосов
/ 05 апреля 2020

Попробуйте напечатать массив $data. Кажется, у него нет элемента с ключом 'User'

...