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

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

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

  1. @admin
  2. <li class="nav-item">
  3. <a class="sidebar-link {{ Str::startsWith($route,'role.index') ? 'actived' : '' }} " href="{{ route('role.index') }}">
  4. <span class="icon-holder">
  5. <i class="c-brown-500 ti-user"></i>
  6. </span>
  7. <span class="title">roles</span>
  8. </a>
  9. </li>
  10. @endadmin

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

  1. Blade::if('admin',function(){
  2. return auth()->check() && auth()->user()->isposs();
  3. });

在用户模型中:

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

我需要做简单的CMS

hmtdttj4

hmtdttj41#

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

izj3ouym

izj3ouym2#

User模型中创建作用域

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

然后你可以打电话

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

相关问题