Laravel护照与Cartalyst Sentinel

时间:2018-03-01 06:33:31

标签: laravel-5 laravel-passport cartalyst-sentinel

我正在使用laravel passport和sentinel来开发API。我想将它与VUE js一起使用。但我在oauth/token遇到了问题。

当我点击网址时出现错误

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: getAuthPassword()

我的用户模型代码是

namespace App;

use Cartalyst\Sentinel\Users\EloquentUser;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends EloquentUser
{
    use HasApiTokens, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'email',
        'password',
        'name',
        'permissions',
        'photo_id'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function findForPassport($username) {
        return $this->where('email', $username)->first();
    }


    public function photo(){
        return $this->belongsTo('App\Photo');
    }
}

如果我使用Class User extends Authenticatable,则可以使用

status: 200, statusText: "OK"

,但如果我使用EloquentUser,那么我会收到错误

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: getAuthPassword()

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

答案是错误的。

调用未定义的方法 Illuminate \ Database \ Query \ Builder :: getAuthPassword()

所以我只将Authenticatable特征放在Use Authenticatable;并导入名称空间中的类

use Illuminate\Auth\Authenticatable;