我做的thinkphp的自动验证为什么不起作用

时间:2022-12-05 19:21:03
我做了一个TP的自动验证,可是弄了一下午这个自动验证也没生效,检查了N遍代码了。请大家帮我看看。 
/lib/model目录下的UserModel.class.php 代码如下: 
<?php 
class UserModel extends Model 

protected $_validate = array( 
array('username','require','用户名必填',0,'','all'), 
array('email','require','email必填',0,'','all'), 
); 

?> 
我的添加用户的action测试代码 
public function useradds(){ 
$u=D("User"); 
if(!$u->create()){ 
echo "数据创建失败"; 
}else{ 
echo "创建成功!"; 



模板文件代码: 
<form action="__URL__/useradds" method="post"> 
用户名:<input type="text" name="username"  /> 
密码:<input type="text" name="password"  /> 
email:<input type="text" name="email" /> 
<!--<input type="hidden" name="uid" value="{$vo.id}" />--> 
<input type="submit" value="提交" /> 

</form> 
数据表名:think_user 字段:id(主键 自增) username password email 
每次测试当输入框值为空时,居然$u->create()能成功。验证根本没起作用。这是怎么回事? 

2 个解决方案

#1



public function useradds(){  
$u=D("User");  
if(!($u->create())){  //加了对()
echo "数据创建失败";  
}else{  
echo "创建成功!";  
}  



把Runtime删除试试

#2


你的那个字段验证的最后,all参数是什么意思?TP的自动验证里面有那样的参数吗?

#1



public function useradds(){  
$u=D("User");  
if(!($u->create())){  //加了对()
echo "数据创建失败";  
}else{  
echo "创建成功!";  
}  



把Runtime删除试试

#2


你的那个字段验证的最后,all参数是什么意思?TP的自动验证里面有那样的参数吗?