Добрый день! Вот изучаю потихоньку Кохану. Создал страницу обратной связи. При вводе данных и отправке данные записываются нормально. Но вот как добавил валидацию, постоянно выводится сообщение о том, что поля feedback_name, feedback_email не должны быть пустыми. Т.е. валидация работает не корректно. В чем моя ошибка?
Вот
ВИД:
Код:
<?php
if($errors)
{
foreach($errors as $value)
{
echo $value.'<br>';
}
}
?>
<form method="post" action="" >
<p>Ф.И.О. * </p>
<input type="text" name="feedback_name" value="">
<p>E-mail * </p>
<input type="text" name="feedback_email" value="">
<p>Содержание сообщения * </p>
<textarea name="feedback_content" rows="3" cols="30"></textarea>
<input type="submit" name="feedback_submit" alt="Отправить сообщение" value="Отправить сообщение" />
</form>
Вот
КОНТРОЛЛЕР:
Код:
public function action_contacts() {
if($_POST)
{
$fb = ORM::factory('feedback');
$fb -> name = $_POST['feedback_name'];
$fb -> email = $_POST['feedback_email']
$fb -> content = $_POST['feedback_content'];
try
{
$fb -> save();
}
catch(ORM_Validation_Exception $e)
{
$errors = $e->errors('validation');
}
}
$content = View::factory('index/page/v_page_contacts')
->bind('errors',$errors);
// Выводим в шаблон
$this->template->page_title = 'Контакты';
$this->template->block_center = array($content);
}
И вот
МОДЕЛЬ:
Код:
class Model_Feedback extends ORM {
protected $_table_name = 'feedbacks';
protected $_primary_key = 'id';
protected $_db_group = 'default';
public function rules()
{
return array(
'feedback_name' => array(
array('not_empty'),
),
'feedback_email' => array(
array('not_empty'),
array('email'),
),
);
}
public function labels()
{
return array(
'feedback_name' => 'Ф.И.О.',
'feedback_email' => 'E-mail',
);
}
public function filters()
{
return array(
TRUE => array(
array('trim'),
),
);
}
}