代码之家  ›  专栏  ›  技术社区  ›  Gabrielle-M

如何在laravel中显示json字段值

  •  0
  • Gabrielle-M  · 技术社区  · 6 年前

    我的数据库名中有一个json字段是 权限 {"read": true, "create": true} . 现在,我想在我的 刀片 查看。我试过用这种方法,但它显示出一个错误。

    @foreach($users as $user)
          <tr>
    
        <td>{{$user->roles->permissions}}</td>
        </tr>
     @endforeach
    

    显示此错误消息。 Property [permissions] does not exist on this collection instance.

    用户模型

     public function roles()
    {
        return $this->belongsToMany(Role::class,'user_roles');
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Alihossein shahabi    6 年前

    我测试了这个场景,没问题。我希望对你有用:

    我的 route :

    Route::get('/test', function (Request $request) {
    
        $users=\App\User::with('roles')->get();
        return view('welcome',compact('users'));
    });
    

    定义 roles 方法内部 user 型号:

     public function roles()
     {
         return $this->belongsToMany(Role::class,'user_roles');;
     }
    

    然后得到 permissions 在里面 view :

    @foreach($users as $user)
        @foreach($user->roles as $role)
            <tr>
                <td>{{$role}}</td>
            </tr>
        @endforea
    @endforeach
    

    我用这些桌子测试

    user_roles

    user_id | role_id 
    -----------------
     1 | 2         
     1 | 2        
    

    角色 :

    id | permissions 
    -----------------
     1 | {"read": true, "create": true}        
     2 | {"read": true, "create": false}  
    

    users :

    id | name | email | password | remember_token | created_at|updated_at 
    ----------------------------------------------------------------------
     1 | alihossein|ali@gmail.com|XXXXX|UIWKK67ei5CCuiv1OXilKY2aRkTfSqGLpqJch0F9YmenGSorsQGHVvWiX6kP| 2018-05-28 22:25:14 | 2018-05-28 22:25:14