dimanche 5 février 2017

How different is "User Model" in Laravel 5 compared to Laravel 4?

I migrate from laravel 4 to laravel 5. I modified User Model to make it compatible to laravel 5 User Model. The User model in Laravel 4 is like that:

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {
    // some model relation functions..
    ...
    public function getLocationId()
    {
        return $this->location_id;
    }
}

I modified it and the new User model is like that now:

namespace App\Models;

use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent implements AuthenticatableContract, CanResetPasswordContract {

    use Authenticatable, CanResetPassword;
    // some model relation functions (some changes for namespace)
    ...
    public function getLocationId()
    {
        return $this->location_id;
    }
}

However, getLocationId method is now problematic. The following line results in an error.

$auth_location_id = Auth::user()->getLocationId();

This is the error:

BadMethodCallException in Builder.php line 2508:
Call to undefined method Illuminate\Database\Query\Builder::getLocationId()

How can I make the method compatible to laravel 5? Thanks..



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2kg5KXH
via IFTTT

Aucun commentaire:

Enregistrer un commentaire