私は CakePHP アプリケーションを持っていて、ログイン フォームとサインアップ フォームを同じページに配置したいと考えています。 -per-page-for-the-same-modelサインアップ部分は機能していましたが、ログイン部分が機能していません。次のエラーが表示されます。データソースのデフォルトで。」これは私が使用しているコントローラーです:
class TblusersController extends AppController {
public function signup() {
$this->loadModel('Tbluser');
$this->loadModel('Tbluserlogin');
if (!empty($this->data)) {
if (isset($this->data['Tbluser'])) { // Check if the signup Form was submitted
$this->Session->setFlash("SignUp Form was submitted.","notif");
} else if (isset($this->data['Tbluserlogin'])) { // Check if the login Form was submitted
$this->Session->setFlash("Login Form was submitted.","notif");
}
}
}
}
?>
私が使用しているモデルは次のとおりです。
Tbluser.php
<?php
class Tbluser extends AppModel{
public $validate = array(
'username'=>array(
array(
'rule'=>'alphaNumeric',
'allowEmpty'=>false,
'message'=>'Invalide Username!'
),
array(
'rule' => array('minLength', '4'),
'message' => 'Username has to be more than 3 chars'
),
array(
'rule'=>'isUnique',
'message'=>'Username already taken!'
)
),
'password' => array(
array(
'rule' => 'alphaNumeric',
'allowEmpty'=>false,
'message' => 'Password must be AlphaNumeric!'
),
array(
'rule' => array('minLength', '4'),
'message' => 'Username has to be more that 3 chars'
),
array(
'rule' => array('confirmPassword', 'cakehashedpassword'),
'message' => 'Passwords do not match'
)),
'email'=>array(
array(
'rule'=>array('email',true),
'required'=>true,
'allowEmpty'=>false,
'message'=>'Invalide email adress!'
),
array(
'rule'=>'isUnique',
'message'=>'Mail adress already taken!'
)
)
);
}
?>
Tbluserlogin.php モデル:
<?php
class Tblforumuserlogin extends Tblforumuser{
}
?>
私のビューファイルは「signup.ctp」です
<h4>Sign up</h4>
<div><?php echo $this->Session->flash();?></div>
<?php
echo $this->Form->create("Tblforumuser", array('url' => '/Tblusers/signup'));
echo $this->Form->input('username' ,array('label'=>'Username<b style="color:red;">'));
echo $this->Form->input('password' ,array('label'=>'Password<b style="color:red;">','type' => 'password'));
echo $this->Form->input('email' ,array('label'=>'Email<b style="color:red;">'));
echo $this->Form->end('Register');
?>
<h4>Log in to Ohyeahhh</h4>
<div><?php echo $this->Session->flash(); ?></div>
<?php echo $this->Form->create("Tbluserlogin", array('url' => '/Tblusers/signup')); ?>
<?php echo $this->Form->input('username' ,array('label'=>"Username :")); ?>
<?php echo $this->Form->end('Login'); ?>
ありがとうございました。