ThinkPHP 2.1RC 的自动验证的小BUG。

Windows上:
UserlistModel.class.php
[php]<?php
class UserlistModel extends Model {

// 自动验证设置
protected $_validate = array(
array(‘u_email’,’email’,’请您正确填写邮件地址!’),
array(‘u_name’,’require’,’请您正确填写姓名!’),
array(‘u_phone’,’number’,’请您正确填写手机号码’),
array(‘u_age’,’number’,’请您填写正确的年龄,只能填写数字!’),
array(‘sourceid’,’number’,’请正确选择您所在的城市!’),
);

// 自动填充设置
protected $_auto = array(
array(‘ifcheck’,’0′,self::MODEL_INSERT),
array(‘dateline’,’time’,self::MODEL_INSERT,’function’),
);

}
?>[/php]

移植到Linux上,自动验证不自动启动,检查了一下,发现是文件名的问题,修改文件名为小写以后,问题解决。
Linux上:
userlistModel.class.php

这个问题不知道有没有其它兄弟遇上,茫然中,求确认。

后确认此纠结源于TP未对自动验证的文件名做出验证,跟踪时也不会提示有错误。

正确的解决办法是严格按照TP的语法创建模型。
如:
[php]
$m = D("userlist");
[/php]

[php]
$m = D("Userlist");
[/php]
按TP的标准语法,应该是后者,对应的是UserlistModel.class.php。

如是,这里的大小写标准有增加开发成本的嫌疑!

发表评论