Reputation: 2139
I'm getting the most bizzare "Unknown Column '0'" error as I try and implement a Laravel model.
SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from `users` where `username` = smithjd and `0` = 1 limit 1)
All the other data in my application is API driven, but I thought it might be easier to have user authentication and management done through the built in ORM.
I've got MySQL set up with a users table:
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| remember_token | varchar(100) | YES | | NULL | |
| username | varchar(100) | YES | | NULL | |
| password | varchar(100) | YES | | NULL | |
| first_name | varchar(100) | YES | | NULL | |
| last_name | varchar(100) | YES | | NULL | |
| email | varchar(100) | YES | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
And here is the model - It hasn't really been changed from the default:
use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $fillable = array('email', 'username', 'password', 'first_name', 'last_name');
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password');
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* Get the token value for the "remember me" session.
*
* @return string
*/
public function getRememberToken()
{
return $this->remember_token;
}
/**
* Set the token value for the "remember me" session.
*
* @param string $value
* @return void
*/
public function setRememberToken($value)
{
$this->remember_token = $value;
}
/**
* Get the column name for the "remember me" token.
*
* @return string
*/
public function getRememberTokenName()
{
return 'remember_token';
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail()
{
return $this->email;
}
}
And here is how I'm trying to use it
$user_data = Input::all();
Auth::attempt(array('username' => $user_data['username'], 'password' => $user_data['password']));
I've never tried to implement a built in model in Laravel before, and I could use some assistance with this. Can anyone point me in the right direction?
Upvotes: 1
Views: 2108
Reputation: 1545
Why don't you var_dump
the Input::only('username', 'password');
so you can check that Laravel has really access to your credentials. There is an issue with the password Laravel tries to get from your form. Use sth like this to test and step forward:
$credentials = Input::only('username', 'password');
return var_dump($credentials);
if(Auth::attempt($credentials))
{
return Redirect::intended('/someurl');
}
return Redirect::back()->withInput();
Upvotes: 2