Создание новых страниц в CakePHP - PullRequest
0 голосов
/ 16 июля 2010

Я создал файл и даже добавил код в файл items_controller (который я узнал, поскольку не нужно было делать это в обычном PHP), но все равно получаю сообщение о том, что новая страница не найдена.

http://neighborrow.com/items/create/

Ошибка должна быть в файле items_controller, потому что он работает в режиме отладки, но когда я перечисляю элемент, он показывает подтверждающее сообщение, которое я скопировал со страницы элементов / добавления, даже если я редактировал его длясоздать:

    function create()
    {
        if(!empty($this->data))
        {
            if (!empty($this->data))
            {
                $user_error = false;
                $this->Item->create();
                if($this->Auth->user())
                {
                    $user_id = $this->Auth->User('id');
                }
                else
                {
                    if (!$user_id = $this->Item->User->is_user($this->data['Item']['user_email']))
                    {
                        $email = $this->data['Item']['user_email'];

                        // Create Password
                        $raw_password = $this->PasswordHelper->generatePassword();

                        // Has Password
                        $hashed_password = $this->Auth->password($raw_password);

                        // Add User
                        if (!$user_id = $this->Item->User->add_basic($email, $hashed_password))
                            $user_error = true;

                        // Login the User
                        $this->Auth->login(array('email' => $email, 'password' => $hashed_password));

                        // Send Registration Email
                        $this->Email->send_registration_email($email, $raw_password);
                    }
                }
                if(!$user_error)
                {
                    $this->data['Item']['user_id'] = $user_id;
                    $this->data['Item']['approved'] = 1;
                    if ($this->Item->save($this->data))
                    {
                        $this->Session->setFlash('Congratulations on your first listing! After we review it to make sure it is rentable, we will send you your free profile where you can list, promote, and rent up to nine more items.   Feel free to share you new listing right away! <a name="fb_share" type="button_count" href="http://www.facebook.com/sharer.php">Share</a><script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>.');
                        $this->redirect(array('controller' => 'items', 'action' => 'view', $this->Item->id));
                    }
                }
            }
        }
    }

1 Ответ

3 голосов
/ 17 июля 2010

После создания новой страницы вам необходимо установить для debug значение> 0, так как в противном случае он не будет восстанавливать кэш, а кешированный файл не будет иметь нового действия.Вы также можете просто удалить кеш вручную (удалите файлы в app / tmp / cache, вне головы).Установка его в '1' не будет выполнять большинство отладочных действий, но будет создавать файлы модели заново.Поэтому, когда вы настраиваете отладку на просмотр, он заново генерирует кэшированный файл и работает.

Итак, новое правило: когда вы создаете новые действия или модели, установите для отладки значение 1 или очистите кэш перед попыткойчто-нибудь с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...