我使用92Five App在一个Laravel项目中工作.当访问用户列表时.它转到了一些错误的页面.它的显示数组到错误日志中的字符串转换错误.
错误:
[2016-08-09 13:13:12] log.ERROR: Something Went Wrong in User
Repository – getAllUsersData():Array to string conversion [] []
我的代码:
public function getAllUsersData() { try{ $users = array(); $tempUsers = \User::all()->toArray(); $users = $this->getGroupBaseRole($tempUsers); return $users; } catch (\Exception $e) { \Log::error('Something Went Wrong in User Repository - getAllUsersData():'. $e->getMessage()); throw new SomeThingWentWrongException(); } } public function getGroupBaseRole($groupMembersInfo) { $data = []; if(!empty($groupMembersInfo) && isset($groupMembersInfo)) { foreach($groupMembersInfo as $user) { $banned = false; $suspended = false; $loginAttempt = 0; $usersThrottle = \Throttle::where('user_id',$user['id'])->get()->toArray(); // print_r($usersThrottle); exit; if(sizeof($usersThrottle) != 0) { foreach($usersThrottle as $userThrottle) { if($userThrottle['banned'] == true) { $banned = true; } if($userThrottle['suspended'] == true) { $suspended = true; } $loginAttempt = $loginAttempt + $userThrottle['attempts']; } $user['banned'] = $banned; $user['suspended'] = $suspended; $user['loginAttempt'] = $loginAttempt; } else { $user['banned'] = false; $user['suspended'] = false; $user['loginAttempt'] = 0; } $groupUser = \Sentry::findUserById($user['id']); $groups = $groupUser->getGroups()->toArray(); if(sizeof($groups)!=0) { $user['role'] =$groups[0]['name']; } else { $user['role'] = ''; } $data[] = $user; } } return $data; }
解决方法
它看起来getGroupBaseRole()方法接受字符串,但你试图传递数组$tempUsers作为第一个参数.