Laravel unexpected error "class user contains 3 abstract methods..."

laravel, php

Solution

Ah found it.

Its apparently documented Laravel Update.

You can check Laravel docs to fix your issues:

"First, add a new, nullable remember_token of VARCHAR(100), TEXT, or equivalent to your users table.

Next, if you are using the Eloquent authentication driver, update your User class with the following three methods:

public function getRememberToken()
{
    return $this->remember_token;
}

public function setRememberToken($value)
{
    $this->remember_token = $value;
}

public function getRememberTokenName()
{
    return 'remember_token';
}

"

See http://laravel.com/docs/upgrade for further details.

Problem

While programming my Authentication app on Laravel, I came across to an error I've never seen before. I've been brainstorming for almost an hour for the cause of this problem but yet I can't find a solution. Error: Class User contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Auth\UserInterface::getRememberToken, Illuminate\Auth\UserInterface::setRememberToken, Illuminate\Auth\UserInterface::getRememberTokenName) User.php Model: ``` <?php use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableInterface; class User extends Eloquent implements UserInterface, RemindableInterface { protected $fillable = [ "email", "username", "password", "password_temp", "code", "active", "created_at", "updated_at", "banned" ]; /** * 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 e-mail address where password reminders are sent. * * @return string */ public function getReminderEmail() { return $this->email; } } ``` And the RegisterController.php ``` <?php class RegisterController extends BaseController { public function getRegister() { return View::make('template.home.register'); } public function postRegister() { $rules = [ "email" => "required|email|max:50|unique:users", "username" => "required|max:50|min:5|unique:users", "password" => "required|max:50|min:6", "password_again"=> "required|same:password", ]; $messages = ["required" => "This field is required." ]; $validator = Validator::make(Input::all(), $rules, $messages); if($validator->fails()) { return Redirect::route('register')->withErrors($validator)->withInput(); } else { $email = Input::get('email'); $username = Input::get('username'); $password = Input::get('password'); $code = str_random(60); $user = User::create([ 'email' => $email, 'username' => $username, 'password' => Hash::make($password), 'code' => $code, 'activated' => 0, 'banned' => 0 ]); if ($user) { Mail::send('template.email.activate', ['link' => URL::route('activate', $code), 'username' => $username], function($message) use ($user) { $message->to($user->email, $user->username)->subject('Account Registration'); }); return Redirect::route('register')->with('homeError', 'There was a problem creating your account.'); } } return Redirect::route('register')->with('homeError', 'Account could not be created.'); } } ```

Original source