Reputation: 2233
I'm trying to validate a User using Ardent's validate() method, but I always receive the HY093 error with the following extra information
(SQL: select count(*) as aggregate from
:userswhere
email= [email protected])
I used Sentry2 for my 'users' table database migration.
I have my User model set up like this:
/**
* 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;
From a form, I have POST data that includes ['email', 'first_name', 'last_name', 'password', 'password_confirmation] with their respective values that go to the following function in my 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() ) {
....
....
....
My code always fails on the if ( $user->validate() )
line. Can anyone help me shed some light upon this situation?
Upvotes: 1
Views: 3747
Reputation: 2233
The issue was this line
'email' => 'required|email|unique::users'
Should have been
'email' => 'required|email|unique:users'
According to The Laravel Docs
Upvotes: 3