Php 为表单元素指定不适当的操作
在Kohana文档3.2中,ORM目录下有一个验证示例。让我 在此重申与我的问题相关的一些代码:Php 为表单元素指定不适当的操作,php,html,kohana-3,Php,Html,Kohana 3,在Kohana文档3.2中,ORM目录下有一个验证示例。让我 在此重申与我的问题相关的一些代码: <form action="<?= URL::site(**'/members'**); ?>" method="post" accept-charset="utf-8"> <label for="username">Username:</label> <input id="username" type="text" name="username
<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>
我的问题是为什么它会将“/members”而不是“/members/create”分配给操作
表单元素的属性?这是一个输入错误。从3.1开始,表单应该始终指向您的路线。这是一个打字错误。从3.1开始,表格应始终指向您的路线
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);
}