类 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
laravel Object of class stdClass could not be converted to string
提问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