2012-02-11 29 views
2

Kohanaドキュメント3.2には、ORMディレクトリの下に検証例があります。それは「/メンバー」の代わりに「/メンバーの作成/割り当て理由フォーム要素に不適切なアクションを割り当てる

public function action_create() 
{ 
    $view = View::factory(**'members/create'**) 
    ->set('values', $_POST) 
    ->bind('errors', $errors); 

    if ($_POST) 
    { 
     $member = ORM::factory('member') 
     // The ORM::values() method is a shortcut to assign many values at once 
     ->values($_POST, array('username', 'password')); 

     $external_values = array(
      // The unhashed password is needed for comparing to the password_confirm field 
      'password' => Arr::get($_POST, 'password'), 
     // Add all external values 
     ) + Arr::get($_POST, '_external', array()); 
     $extra = Validation::factory($external_values) 
     ->rule('password_confirm', 'matches', array(':validation', ':field', 'password')); 

     try 
     { 
      $member->save($extra); 
      // Redirect the user to his page 
      $this->request->redirect('members/'.$member->id); 
     } 
     catch (ORM_Validation_Exception $e) 
     { 
      $errors = $e->errors('models'); 
     } 
    } 

    $this->response->body($view); 
} 

私の質問は次のとおりです。

<form action="<?= URL::site(**'/members'**); ?>" method="post" accept-charset="utf-8"> 
<label for="username">Username:</label> 
<input id="username" type="text" name="username" value="<?= Arr::get($values, 'username'); ?>" /> 
<label for="username" class="error"><?= Arr::get($errors, 'username'); ?> 

<label for="password">Password:</label> 
<input id="password" type="password" name="password" value="<?= Arr::get($values, 'password'); ?>" /> 
<label for="password" class="error"><?= Arr::get($errors, 'password'); ?> 

<label for="password_confirm">Repeat Password:</label> 
<input id="password_confirm" type="password" name="_external[password_confirm]" value="<?= Arr::path($values, '_external.password_confirm'); ?>" /> 
<label for="password_confirm" class="error"><?= Arr::path($errors, '_external.password_confirm'); ?> 

<button type="submit">Create</button> 
</form> 

が、それは、コントローラを定義しています。私はここに私の質問に関連するいくつかのコードを繰り返す てみよう'フォームの要素 の属性に?

答えて

0

これはタイプミスです。 3.1 formから出発するルートは常にあなたのルートを指すべきです。

関連する問題