プロジェクトでKohana3.3を使用していて、ユーザー登録とログインを機能させようとしています。レイアウト/テンプレートの管理にORMのAuthとKostacheを使用しています。
どうすればよいですか:
- ユーザー名がすでに存在するかどうかを確認しますか?error_msg.mustacheに戻った場合は、「ユーザーはすでに存在します」というメッセージが表示されます。
- ユーザー名とメールアドレスが私のモデルルールに従って有効かどうかを確認しますか?そうでない場合は、どの検証が失敗したかを示すエラーメッセージをerror_msg.mustacheに返します
私のコントローラーには次のものがあります。
class Controller_User extends Controller {
public function action_signup()
{
$renderer = Kostache_Layout::factory();
$this->response->body($renderer->render(new View_FrontEnd_User, 'frontend/signup'));
}
public function action_createuser()
{
try {
$user = ORM::factory('User');
$user->username = $this->request->post('username');
$user->password = $this->request->post('password');
$user->email = $this->request->post('email');
// How do I:
// Check if Username already exists? If it does return to error_msg.mustache a message "User already Exists"
// Check if email is valid? If not return error message to error_msg.mustache indicating "email is not valid"
$user->save();
}
catch (ORM_Validation_Exception $e)
{
$errors = $e->errors();
}
}
}
私のモデルでは:
<?php
class Model_User extends Model_Auth_User
{
public function rules()
{
return array(
'username' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 32)),
array('regex', array(':value', '/^[-\pL\pN_.]++$/uD')),
),
'email' => array(
array('not_empty'),
array('min_length', array(':value', 4)),
array('max_length', array(':value', 127)),
array('email'),
),
);
}
}
よろしくお願いします!