使用 ThinkPHP 自动验证, create() 返回始终很奇怪,通过验证返回一个空数组,未通过验证返回 false,getError() 中也能获取到错误,可这样就没办法判断是否正确了。难道还要判断 create() 的返回值 is_array() ?翻了很多栗子,发现写法都一样的,可结果却大相径庭。
UserModel:
namespace Common\Model;
use Think\Model;
/**
*
*/
class UserModel extends Model
{
private $_db;
protected $_validate = [
['email', 'require', '邮箱不正确'],
['password', 'require', '密码不正确']
];
function __construct()
{
$this->_db = M('users');
}
public function getUser($email)
{
return $this->_db->where("email = '%s'", $email)->find();
}
}
UserController:
namespace Admin\Controller;
use Think\Controller;
/**
*
*/
class LoginController extends Controller
{
/**
* 登录页
*/
public function index()
{
$this->display();
}
public function login()
{
if (IS_POST) {
$User = D('User');
// var_dump($User->create());
if (!$User->create()){ // 始终走这里边
$this->ajaxReturn([
'status' => 0,
'msg' => $User->getError(),
'data' => null
]);
} else {
$user = $User->getUser(I('post.email'));
var_dump($user);
}
}
}
}
html:
<form class="login-container" action="__MODULE__/Login/login" method="post">
<input name="email" type="text" placeholder="Email">
<input name="password" type="password" placeholder="Password">
<input type="submit" value="Sigin">
</form>
- 3 回答
- 0 关注
- 520 浏览
添加回答
举报
0/150
提交
取消