我想验证表单输入,它是要发布文章的日期时间。
$model = new Post('update');
$model->attributes = $_POST['Post'];
if($model->validate()){
//But, validation fails...
}
这是我检查输入是否为日期时间格式的规则。我用过这个页面(http://chris-backhouse.com/date-validation-in-yii/528)作为参考。
但我收到了"created"输入的验证错误。
public function rules()
{
return array(
//datetime validation
array('created', 'date', 'message' => '{attribute}: is not a datetime!', 'format' => 'YYYY-MM-DD HH:MM:SS'),
);
}
这就是我在$models属性中所拥有的。
array(1) { ["created"]=> string(19) "2013-08-01 00:00:01" }
有人知道怎么做吗?
提前感谢!!!
我建议在规则中使用输入格式,因为有时您需要自定义格式。
array('created', 'date', 'format'=>'yyyy-MM-dd hh:mm:ss', 'message'=>'{attribute} have wrong format'),
有关日期格式的更多信息,请点击此处-http://www.yiiframework.com/doc/api/1.1/CDateTimeParser
在Yii 2.0.6(可能还有Yii 1.x?)上,正确的格式是:
['creation_date', 'date', 'format'=>'yyyy-MM-dd HH:mm:ss']
如果时间不在CAPS中,它就不起作用。
这是帖子的创建时间吗?然后你根本不需要验证它,你应该在保存之前设置它,而不是用POST 发送它
将此添加到您的模型中:
public function beforeSave()
{
if($this->isNewRecord)
{
$this->created=new CDbExpression('NOW()');
}
return parent::beforeSave();
}