Неустранимая ошибка: вызов функции-члена create() для не-объекта в приложении входа в cakephp

Я разрабатываю модель, контроллер, класс просмотра и помещаю его в нужные папки, но все еще сталкиваюсь с проблемой.

Класс модели:

<?php
class User extends AppModel {
    function validateLogin($data)
    {

        $user = $this->find(array('username' => $data['username'], 'password' => $data['password']), array('id', 'username'));

        if( empty($user) == false )
        {
            return $user;
        }

        return false;
    }
}
?>

Класс контроллера:

<?php
class UsersController extends AppController {
    var $name = 'Users';
    var $helpers = array('Form');


    function index(){
    }
    function login_form() { }

    function login() {

        if(empty($this->data['User']['username']) == false)
        {

            if(($user = $this->User->validateLogin($this->data['User'])) != false)
            {

                $this->Session->setFlash('Thank you for logging in!');
                $this->Session->write('User', $user);

                $this->Redirect(array('controller' => 'Controller_name', 'action' => 'Action_name'));
                exit();
            }
            else
            {
                $this->Session->setFlash('Incorrect username/password!', true);
                $this->Redirect(array('action' => 'login_form'));
                exit();
            }
        }
    }

    function logout() {

        $this->Session->destroy();
        $this->Session->setFlash('You have been logged out!');


        $this->Redirect('/');
        exit();
    }
}
?>

класс просмотра:

<div class="login"> 
<h2>Login</h2>     
    <?php echo $form->create('User', array('action' => 'login'));?> 
        <?php echo $form->input('username');?> 
        <?php echo $form->input('password');?> 
        <?php echo $form->submit('Login');?> 
    <?php echo $form->end(); ?> 
</div> 

Я создал базу данных для этого. Но проблема в том, что возникает фатальная ошибка, например

Ошибка: вызов функции-члена create() для не-объекта


person Community    schedule 25.03.2014    source источник
comment
Попробуйте с $this->Form->create().   -  person Rikesh    schedule 25.03.2014
comment
Вы всегда должны указывать точную версию cakephp, которую вы используете.   -  person mark    schedule 25.03.2014
comment
Также помогает указание строки и файла, которые вызывают проблему...   -  person Vladimir Hraban    schedule 25.03.2014
comment
@mark я использую версию cakephp 2.4   -  person    schedule 25.03.2014
comment
Тогда, пожалуйста, расскажите мне, как в мире вы использовали $form вместо $this-›Form. Мне очень любопытно об этом. Также обратите внимание, что существует официальная документация, которую всегда следует сначала просмотреть, прежде чем начинать спрашивать других людей: book.cakephp.org — это бесплатно и доступно круглосуточно и без выходных.   -  person mark    schedule 25.03.2014
comment
@Rikesh thanq, босс, теперь все работает нормально ...   -  person    schedule 25.03.2014
comment
@rikesh после входа в систему выдает сообщение об износе, например, недопустимый тип смещения [CORE\Cake\Model\Model.php, строка 2933]   -  person    schedule 25.03.2014


Ответы (1)


Ваша форма должна быть примерно такой

<?php echo $this->Form->create('User', array('action' => 'login'));?>

 <!-- Form elements go here -->

 <?php echo $this->Form->end(); ?>
person Ram Sharma    schedule 25.03.2014