Регистрационная форма CakePHP, MVC

Я новичок в фреймворке CakePHP и концепции MVC. Ниже я разместил свой шаблон дизайна MVC. Я думаю, что я сделал много ошибок здесь. http://localhost/www/cakephp/app/View/Users/ Когда я использую эту ссылку, я вижу свою регистрационную форму. Я не знаю, как перенаправить на другую страницу. 1-й шаг только работает (см. Форму регистрации). Тогда как перенаправить на другую страницу? Очисти меня от моих ошибок здесь. Я знаю, что сделал много ошибок. Кто-нибудь скажет мне с каким-то четким объяснением?

Модель /User.php

App::uses('Model', 'Model');

class User extends AppModel {
     var $name = 'User';

    function register()
    {
     $name = $_POST['name'];
     $email = $_POST['email'];
     $password = $_POST['password'];
     $username = $_POST['username'];

         try
         {
             $stmt = $conn->prepare("INSERT INTO ( Name, Email, Password, Username, CreatedOn ) VALUES ( ?, ?, ?, ?, NOW() )");
             $conn->errorInfo();
             $stmt->bindParam('1', $name, PDO::PARAM_STR);
             $stmt->bindParam('2', $email, PDO::PARAM_STR);
             $stmt->bindParam('3', $password, PDO::PARAM_STR);
             $stmt->bindParam('4', $username, PDO::PARAM_STR);
             $result = $stmt->execute();
         } 
         catch (PDOException $e) 
         {
             'Error : ' . $e->getMessage();
         }
    }     
}

Посмотреть /App/view.ctp

<html>
    <form action="" method="post">
        <p>Please fill out the form below to register an account.</p>
        <label>Name:</label><input type="text" name="name" size="40" />
        <label>Email:</label><input type="text" name="email" size="40"/>
        <label>Password:</label><input name="password" type="password" size="40" maxlength="255" />
        <label>Username:</label><input name="username" size="40" />
        <br/><br/>
        <input type="submit" value="Register" />
    </form>
</html>

Контроллер /UsersController.php

<?php
class UsersController extends AppController
{
    public function register()
    {
        if (!empty($this->params['form']))
        {
            if($this->User->save($this->params['form']))
            {
                $this->flash('Registration Successful','/users/register');
            }
            else
            {
                $this->flash('Not succeeded','/users/register');
            }
        }
    }
}
?>

1 ответ

Документация CakePHP имеет очень полезное руководство

Пример о добавлении постов, и его очень легко адаптировать к тому, что вам нужно.

  • В модели вы можете просто использовать save функция.
  • В контроллере вы можете использовать this->request->is('post')вместо проверки, если $this->params['form'] не пусто,
  • Форма может быть создана с помощью FormHelper
Другие вопросы по тегам