类 stdClass 的 laravel 对象无法转换为字符串

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/45771351/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 16:31:17  来源:igfitidea点击:

laravel Object of class stdClass could not be converted to string

phplaravel

提问by Mohammad hayajneh

i have permissions for this role and other permission that this role don't have i want to display both permission in this role and other ones in the same page separated heres index in my controller

我有此角色的权限和此角色没有的其他权限

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);
}

but i keep getting Object of class stdClass could not be converted to string,

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

i did foreach to get the data in my view

我做了 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>

this im getting with the error

这是我遇到的错误

Object of class stdClass could not be converted to string in RolePermissionsController.php line 32 at HandleExceptions->handleError('8', 'Trying to get property of non-object', 'C:\xampp\htdocs\terkwazmng\app\Http\Controllers\RolePermissionsController.php', '32', array('role_id' => '1', 'rolepermission' => array(object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass)), 'rolepermissiongetid' => array(object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass)))) in RolePermissionsController.php line 32

在 HandleExceptions->handleError('8', 'Trying to get property of non-object', 'C:\xampp\htdocs\terkwazmng\app\Http 处,类 stdClass 的对象无法转换为 RolePermissionsController.php 第 32 行中的字符串\Controllers\RolePermissionsController.php', '32', array('role_id' => '1', 'rolepermission' => array(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)), 'rolepermissiongetid' => array(object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object( stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), object(stdClass), 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), object(stdClass), object(stdClass), object(stdClass)))) 在 RolePermissionsController.php 第 32 行object(stdClass)))) 在 RolePermissionsController.php 第 32 行object(stdClass)))) 在 RolePermissionsController.php 第 32 行

回答by Binu Vijayan

The issue would be with this piece of code, $role2s is an object. Since you are trying to print the object it is throwing the error

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

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

Trying running var_dump on the particular variable.

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

回答by Dhaval

curly braces are equals to PHP's echo statement. In $role2s variable you are getting object/array so it'll not print but give you an error. So you can use below solution. and after that ->or [' ']get it's object or array.

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

Try

尝试

{{dd($role2s)}}

{{dd($role2s)}}

or

或者

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

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

or

或者

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

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

**

**

回答by B. Desai

You don't have specify your exact error. But May be error is in controller. check code below

您没有指定确切的错误。但可能是错误在控制器中。检查下面的代码

$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();

回答by ilyés Tabessi

Try to do this: it works 100%

尝试这样做:它 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