Поля формы

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
vladimircape
Сообщения: 339
Зарегистрирован: 2012.05.29, 16:31

Поля формы

Сообщение vladimircape »

В модели есть поле createtime время создание в timestamp(int)
Но в форме есть 3 поля для ввода поля, число - например 2013-03-23 и часы и минуты к примеру 20:30
Когда происходит submit мы просто ->createtime=mktime(......
Но если по какой-то причине не пройдена валидация, надо вернутся в форму с ошибкой и с введенными значениями, как лучше это сделать.
Я пока делаю дополнительные свойства типа date,hours в самой модели, а в базу не пишу, а может есть еще какой-то способ.
Аватара пользователя
ToxaDR
Сообщения: 87
Зарегистрирован: 2012.06.26, 23:03

Re: Поля формы

Сообщение ToxaDR »

обычно createtime - это время создания записи, которое не редактируется. И при этом присваевается на сервере, а не от пользователя приходит.
Если же всё же через дополнительные свойства решите делать, то не забудьте указать их в правилах валидации
Советую обратить внимание на тип date и в частности на CDateValidator
vladimircape
Сообщения: 339
Зарегистрирован: 2012.05.29, 16:31

Re: Поля формы

Сообщение vladimircape »

ToxaDR писал(а):обычно createtime - это время создания записи, которое не редактируется. И при этом присваевается на сервере, а не от пользователя приходит.
Если же всё же через дополнительные свойства решите делать, то не забудьте указать их в правилах валидации
Советую обратить внимание на тип date и в частности на CDateValidator
Я createtime для примера просто привел.

У меня есть модель со свойством starttime=INT
вот в форме мне требуется вводить данные но в человеческом формате типа 2013-03-24 20:30
Если не прошла валидаюция сама модель, к примеру забыли поле title заполнить, надо вернуть на форму с уже вводивщимися данными, чтобы человек заново не вводил, но в модели есть только свойство starttime.
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Поля формы

Сообщение S c »

Код: Выделить всё

$time = $_POST['time'];
$model->time = mktime($_POST['time']);
if (!$model->validate()) $model->time = $_POST['time']
 
lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Поля формы

Сообщение lancedevnull »

Код: Выделить всё

MyModel extends CActiveRecord
{
   public $createdate;
   public rules ()
   {
      ...
      array('createtime' 'unsafe'),
      array('createdate' 'date', ....'timestampAttribute'=>'createtime'),
      ...
   }
}
Ответить