简单的代码将无法正常工作!我不断收到错误试图与if语句行获得非对象的财产。我试图访问这个像一个数组我收到一条消息,说它不能作为一个数组访问一个stdClass。Laravel试图让非对象的属性在对象
public function isAllowed($perm)
{
$cando = 0;
$groups = DB::table('group_user')->where('user_id', $this->id)->get();
foreach ($groups as $mygroup)
{
$group_can = DB::table('group_permission')->where([
['permission_id', $permission->id],
['group_id', $mygroup->group_id]
])->first();
$setting = $group_can->setting; // Error returns for this line //
if ($setting > $cando)
{
$cando = $setting;
}
}
}
的print_r,的var_dump,和$ DD group_can给此:
stdClass Object
(
[group_id] => 1
[permission_id] => 50
[setting] => 1
)
object(stdClass)#555 (3) { ["group_id"]=> int(1) ["permission_id"]=> int(50) ["setting"]=> int(1) }
{#555 ▼
+"group_id": 1
+"permission_id": 50
+"setting": 1
}
使用$设定= $ group_can->设置;返回错误试图获得非对象的属性
使用$设定= $ group_can [“设置”];返回错误不能使用类型stdClass的的对象作为阵列
的laravel错误的细节:
在HandleExceptions->的HandleError(8,“试图获得非对象的属性”, '/home/mwsubmissions/public_html/jon/MWSubmissionManager/app/User.php',91,阵列( '烫发'=> 'manage.projects', '剑度'=> 1, '基团'=>对象(集合) '许可'=>对象(stdClass的), 'MYGROUP'=>对象(stdClass的), '基团'=>空值, 'group_can'=>空值, '设置'=> 1))
编辑 我删除了我是有错误的代码的第一部分,然后得到了这一点,同样的事情又例如,但使用较小的对象,此行是一次比一次更重要。所有细节已更新。
'$组=组::找到($ mygroup-> GROUP_ID);' 应该是 '$组=组::找到($ mygroup-> ID);' –
@AnarBayramov负。 $ mygroup来自之前提到的$ groups查询,这是一个只有2列group_id和user_id的数据透视表。 $ group对象正在查找适当的数据,我无法访问它。 – MasterZ
你可以在foreach中分享'return dd($ mygroup)'吗? – C2486