Laravel 5委托attachRolle
Laravel 5 entrust attachRolle
我在 laravel 5 上犯了一个错误,我暂时无法解决。我在 Laravel 5 中使用 Zizaco/Entrust 但我无法正确设置用户模型的特征。我在调用用户模型时 运行 出错了。这是我的用户模型:
use Zizaco\Entrust\Traits\EntrustUserTrait; // I think it it's causing a problem.
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model {
use EntrustUserTrait; //or this
use Authenticatable, CanResetPassword;
protected $table = 'users';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
}
这是导致错误的行:
$user->attachRole($owner);
据我了解,我的用户模型无法扩展特征方法。
错误:
调用未定义的方法 Illuminate\Database\Eloquent\Collection::attachRole()
有什么建议吗?谢谢!
问题不在于对 attachRole()
本身的调用,而在于您调用它的内容。 $user
不是模型而是 collection。您可能只需要在获取用户的查询中将 get()
切换为 first()
。类似于:
$user = User::where(...)->first();
$user->attachRole($owner);
我在 laravel 5 上犯了一个错误,我暂时无法解决。我在 Laravel 5 中使用 Zizaco/Entrust 但我无法正确设置用户模型的特征。我在调用用户模型时 运行 出错了。这是我的用户模型:
use Zizaco\Entrust\Traits\EntrustUserTrait; // I think it it's causing a problem.
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model {
use EntrustUserTrait; //or this
use Authenticatable, CanResetPassword;
protected $table = 'users';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
}
这是导致错误的行:
$user->attachRole($owner);
据我了解,我的用户模型无法扩展特征方法。
错误: 调用未定义的方法 Illuminate\Database\Eloquent\Collection::attachRole()
有什么建议吗?谢谢!
问题不在于对 attachRole()
本身的调用,而在于您调用它的内容。 $user
不是模型而是 collection。您可能只需要在获取用户的查询中将 get()
切换为 first()
。类似于:
$user = User::where(...)->first();
$user->attachRole($owner);