Регистрационная форма 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