Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 29 мар 2024, 04:40

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 21 май 2012, 23:55 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
В уроке "Стандартные правила валидации - Часть 1" рассматриваются правила валидации, которые встроены в Кохану и охватывают основные проверки, которые могут понадобиться. Рассмотрена примерно половина из всех правил.
Адрес урока:
http://kohanaframework.su/advanced/provided_rules_p1

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июн 2012, 21:11 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 июн 2012, 12:31
Сообщения: 46
Добрый день! Вот изучаю потихоньку Кохану. Создал страницу обратной связи. При вводе данных и отправке данные записываются нормально. Но вот как добавил валидацию, постоянно выводится сообщение о том, что поля 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'),
            ),
        );
    }
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июн 2012, 14:43 
Не в сети
Бывалый

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
в моделе имена полей долджны быть не
'feedback_name'
'feedback_email'
а
'name'
'email'


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июн 2012, 18:27 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 июн 2012, 12:31
Сообщения: 46
mamahtehok писал(а):
в моделе имена полей долджны быть не
'feedback_name'
'feedback_email'
а
'name'
'email'

Спасибо огромное! Вчера целый день мучался, так и не разобравшись. Если не трудно, не могли бы Вы пояснить почему именно 'name' вместо 'feedback_name' и 'email' вместо 'feedback_email'
Заранее спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 июн 2012, 01:01 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Потому что
Код:
$fb -> name = $_POST['feedback_name'];
$fb -> email = $_POST['feedback_email']


Он из левой части берет.
Можно вообще так написать
Код:
$fb -> name = 123;


Без участия $_POST['feedback_name']

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group