Dyl*_*ler 2 authentication laravel laravel-5
我有一个登录用户,这里的代码有效:
@if( Auth::check() )
Logged in as: {{ Auth::user()->firstname }} {{ Auth::user()->lastname }}
@endif
Run Code Online (Sandbox Code Playgroud)
我正在使用zizaco /委托,而且一切正常.我已经创建了角色和权限,并为我的用户提供了具有管理权限的admin角色.
那么为什么这不起作用:
$user = Auth::user();
print_r($user->hasRole('admin'));
Run Code Online (Sandbox Code Playgroud)
如果我print_r $ user我可以看到Auth用户已加载,但hasRole无效.我现在只是在刀片模板中对此进行了测试,但是在Controller中尝试了相同的结果.我的错误是:
BadMethodCallException in Builder.php line 1992:
Call to undefined method Illuminate\Database\Query\Builder::hasRole()
Run Code Online (Sandbox Code Playgroud)
我的用户模型:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Zizaco\Entrust\Traits\EntrustUserTrait;
class User extends Model {
use EntrustUserTrait;
protected $table = 'users';
public $timestamps = true;
use SoftDeletes;
protected $dates = ['deleted_at'];
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
当我以这种方式查看用户时,我意识到hasRole适用于我(返回App\Models\User Object):
$user = \App\Models\User::find( \Auth::user()->id );
Run Code Online (Sandbox Code Playgroud)
但不是当我以这种方式找到用户时(返回App\User Object):
$user = \Auth::user();
Run Code Online (Sandbox Code Playgroud)
我宁愿认为它会以另一种方式工作,当我拉起App\User时我可以访问hasRole但不一定在我搜索用户时.我认为hasRole可以从Auth :: user()工作,而不必用用户模型查找用户...... ???
发现问题..
在config/auth.php我有
'model' => 'App\User',
Run Code Online (Sandbox Code Playgroud)
我的命名空间需要
'model' => 'App\Models\User',
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5199 次 |
| 最近记录: |