【问题标题】:laravel Object of class stdClass could not be converted to string类 stdClass 的 laravel 对象无法转换为字符串
【发布时间】:2017-08-19 12:09:45
【问题描述】:

我有这个角色的权限和这个角色没有的其他权限我想在我的控制器中显示这个角色的权限和其他权限在同一页面中分隔的 heres 索引

public function index(Request $request , $id,$permission_id)
{
    $rolepermission =DB::table('permission_role')
        ->join('permissions', 'permissions.id', '=', 'permission_role.permission_id')
        ->where('permission_role.role_id' , $id)
        ->get();

    $rolepermissiongetid =DB::table('permission_role')->select('role_id')
        ->where('permission_role.role_id' , $id)
        ->get();

    $notrolepermision =DB::table('permission_role')
        ->join('permissions', 'permissions.id', '=', 'permission_role.permission_id')
        ->whereNotIn('permission_role.role_id' ,$rolepermissiongetid)
        ->get();



    $nodata = '';
    if($rolepermission==null){
        $nodata="This Roles Does Not Have Permissions";
    }

    $role=DB::table('roles')->where('id' ,$id)->first();

    return view('managements.role-permission-list')
        ->with('role' ,$role)
        ->with('data' , $rolepermission)
        ->with('role2', $notrolepermision)
        ->with('nodata' , $nodata)
        ->with('role_id' ,$id);
}

但我不断收到类 stdClass 的对象无法转换为字符串,

我做了 foreach 来获取我视图中的数据

<div class="row">
    <div class="col-lg-12">
        <div class="panel panel-default">
            @foreach($role2 as $role2s)
                <button class="btn btn-primary">{{$role2s->name}}</button>

             @endforeach

            <!-- /.panel-heading -->
            <div class="panel-body">
        @if(isset($success_alert))
            <div class="alert alert-success">{{$success_alert}}</div>
        @endif
        @if(isset($danger_alert))
            <div class="alert alert-danger">{{$danger_alert}}</div>
        @endif


            @foreach($data as $dat)


                <div class="col-lg-3">
                    <button class="btn btn-default">{{$dat->name}}</button>
                    <hr>
                </div>


              <!--      <td>
                        <a href='/role-permission-confirm-delete/{{$dat->role_id}}/{{$dat->permission_id}}' class='btn btn-danger'><i class='fa fa-close'></i> Delete</a>

                       <!-- <a href='/role-permission/{{$dat->role_id}}/{{$dat->permission_id}}' class='btn btn-warning confirm'> View </a>
                    </td>-->

            @endforeach


        <!-- /.table-responsive -->

    </div>
        </div>
   <!-- <a href="/role-permission/create/{{$role->id}}" class="btn btn-primary">
        <i class="fa fa-plus"></i> New Permission
    </a> -->
</div>
</div>

我遇到了错误

stdClass 类的对象无法转换为字符串 在 RolePermissionsController.php 第 32 行 在 HandleExceptions->handleError('8', '试图获取非对象的属性', 'C:\xampp\htdocs\terkwazmng\app\Http\Controllers\RolePermissionsController.php', '32', array('role_id ' => '1', 'rolepermission' => 数组(object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object (stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdC lass), object(stdClass), object(stdClass), object(stdClass)), 'rolepermissiongetid' => array(object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass) ,对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass) ,对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass) ,对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass) ,对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass),对象(stdClass) , object(stdClass), object(stdClass)))) 在 RolePermissionsController.php 第 32 行

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    问题在于这段代码,$role2s 是一个对象。由于您正在尝试打印对象,因此会引发错误

    <button class="btn btn-primary">{{$role2s}}</button>
    

    尝试在特定变量上运行 var_dump。

    【讨论】:

    • 我在视图页面中得到类 stdClass 的对象无法转换为字符串错误,我将 {{$role2s}} 更改为 {{$role2s->name}} 一直收到相同的错误
    • 请分享整个视图页面内容以及您收到的错误消息
    【解决方案2】:

    尝试这样做: 它工作 100%

    $rolepermissiongetid =DB::table('permission_role')->select('role_id')
     ->where('permission_role.role_id' , $id)
        ->get();
    
    
    
    
    $arrQuery = array();
    foreach($rolepermissiongetid as $key => $rolepermissiongetid){
    $arrQuery[$key] = rolepermissiongetid->role_id;
     }
    
    
    
    
    $notrolepermision =DB::table('permission_role')
        ->join('permissions', 'permissions.id', '=', 'permission_role.permission_id')
        ->whereNotIn('permission_role.role_id' ,$arrQuery)
        ->get();
    
    
    
    //tunisian_developpers_team
    

    【讨论】:

      【解决方案3】:

      花括号等于 PHP 的 echo 语句。在 $role2s 变量中,您正在获取对象/数组,因此它不会打印但会给您一个错误。所以你可以使用下面的解决方案。然后 ->[' '] 得到它的对象或数组。

      试试

      {{dd($role2s)}}

      {{print_r({{$role2s}})}}

      {{var_dump({{$role2s}})}}

      **

      【讨论】:

      • 我知道我使用的问题不是来自视图,而是来自控制器
      【解决方案4】:

      您没有具体说明您的错误。但可能是控制器中的错误。检查下面的代码

      $notrolepermision =DB::table('permission_role')
              ->join('permissions', 'permissions.id', '=', 'permission_role.permission_id')
              ->whereNotIn('permission_role.role_id' ,$rolepermissiongetid->role_id) //<--------------check this line you need $rolepermissiongetid->role_id in stead of $rolepermissiongetid
              ->get();
      

      【讨论】:

      • 我有 $rolepermissiongetid =DB::table('permission_role')->select('role_id') ->where('permission_role.role_id' , $id) ->get();所以不需要使用 $rolepermissiongetid->role_id
      猜你喜欢
      • 2020-03-16
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      相关资源
      最近更新 更多