laravel 尝试读取int上的属性“id”?我找不到解决办法

2w2cym1i  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(112)

我试图使@admin @endadmin在视图中控制我的项目中的一些访问

@admin

<li class="nav-item">
    <a class="sidebar-link {{ Str::startsWith($route,'role.index') ? 'actived' : '' }} " href="{{ route('role.index') }}">
        <span class="icon-holder">
            <i class="c-brown-500 ti-user"></i>
        </span>
        <span class="title">roles</span>
    </a>
</li>

@endadmin

和应用程序服务提供程序中的 Boot 功能

Blade::if('admin',function(){

    return auth()->check() && auth()->user()->isposs();
});

在用户模型中:

public function isposs(){
     return $this->role->id==10:
 }

我需要做简单的CMS

hmtdttj4

hmtdttj41#

$this->role似乎是一个int值。因此,首先使用dd($this->role)检查它以查看真实的值。
错误消息说它不能访问int值上的id prop,例如:9、你不能做$this->9->id
$this->role必须返回一个关系或类似于类的东西,而不是int。

izj3ouym

izj3ouym2#

User模型中创建作用域

public function scopeIsPoss(Builder $query){
    return $query->role->id == 10;
}

然后你可以打电话

auth()->user()->isPoss();

相关问题