0

我正在尝试使用 Ardent 的 validate() 方法验证用户,但我总是收到带有以下额外信息的 HY093 错误

(SQL: select count(*) as aggregate from:用户where邮箱= my.email@gmail.com)

我使用 Sentry2 进行“用户”表数据库迁移。

我的用户模型设置如下:

/**
* Validation Rules for ARDENT here
*/    
public static $rules = [
    'first_name'            => 'required',
    'last_name'             => 'required',
    'email'                 => 'required|email|unique::users',
    'password'              => 'required|between:8,32|confirmed',
    'password_confirmation' => 'required|between:8,32',
];

/**
 * The attributes that can be added to a new User using $user->fill()
 *
 * @var array
 */
protected $fillable = [
    'first_name', 
    'last_name', 
    'email', 
    'password', 
    'password_confirmation'
];

/**
 * Automatically removes _confirmation attributes
 *
 * @var boolean
 */
public $autoPurgeRedundantAttributes = true;

从一个表单中,我有包含 ['email', 'first_name', 'last_name', 'password', 'password_confirmation] 的 POST 数据及其各自的值,这些值将转到我的 UserController 中的以下函数:

public function signup() {
    // Create a new User object
    $user = new User();

    // Populate attributes with information described in User->fillable
    $user->fill( Input::all() );

    // Check if info is valid using Ardent's validate() method
    if ( $user->validate() ) {
    ....
    ....
    ....

我的代码总是在线失败if ( $user->validate() )。谁能帮我解释一下这种情况?

4

1 回答 1

1

问题是这条线

'email' => 'required|email|unique::users'

本来应该

'email' => 'required|email|unique:users'

根据Laravel 文档

于 2014-02-13T03:51:20.860 回答