错误提示
[8] ErrorException in Builder.php line 755
Array to string conversion
*/
protected function parseIn(Query $query, string $key, string $exp, $value, $field, int $bindType): string
{
// IN 查询
if ($value instanceof Closure) {
$value = $this->parseClosure($query, $value, false);
} elseif ($value instanceof Raw) {
$value = $value->getValue();
} else {
$value = array_unique(is_array($value) ? $value : explode(',', $value));
$array = [];
foreach ($value as $v) {
$name = $query->bindValue($v, $bindType);
$array[] = ':' . $name;
}
if (count($array) == 1) {
return $key . ('IN' == $exp ? ' = ' : ' <> ') . $array[0];
Call Stack
in Builder.php line 755
at Error->appError()
at array_unique() in Builder.php line 755
at Builder->parseIn() in Builder.php line 526
at Builder->parseWhereItem() in Builder.php line 383
at Builder->parseWhereLogic() in Builder.php line 331
at Builder->buildWhere() in Builder.php line 299
at Builder->parseWhere() in Mysql.php line 94
at Mysql->select() in PDOConnection.php line 843
at PDOConnection->think\db\{closure}() in PDOConnection.php line 632
at PDOConnection->query() in PDOConnection.php line 844
at PDOConnection->select() in BaseQuery.php line 1078
at BaseQuery->select() in Auth.php line 241
at Auth->getAuthList() in Auth.php line 142
at Auth->check() in Auth.php line 20
at Auth->handle()
at call_user_func() in Middleware.php line 142
at Middleware->think\{closure}() in Pipeline.php line 84
at Pipeline->think\{closure}() in Pipeline.php line 65
at Pipeline->then() in Route.php line 748
at Route->dispatch() in Http.php line 213
at Http->dispatchToRoute() in Http.php line 203
at Http->think\{closure}() in Pipeline.php line 59
at Pipeline->think\{closure}() in TraceDebug.php line 71
at TraceDebug->handle()
at call_user_func() in Middleware.php line 142
at Middleware->think\{closure}() in Pipeline.php line 84
at Pipeline->think\{closure}() in MultiApp.php line 71
at MultiApp->think\app\{closure}() in Pipeline.php line 59
at Pipeline->think\{closure}() in Pipeline.php line 65
at Pipeline->then() in MultiApp.php line 72
at MultiApp->handle()
at call_user_func() in Middleware.php line 142
at Middleware->think\{closure}() in Pipeline.php line 84
at Pipeline->think\{closure}() in Pipeline.php line 65
at Pipeline->then() in Http.php line 204
at Http->runWithRequest() in Http.php line 162
at Http->run() in index.php line 20权限判断代码public function check($name, $uid, $type = 1, $mode = 'url', $relation = 'or') {
if (!$this->_config['auth_on']) {
return true;
}
$authList = $this->getAuthList($uid, $type); //获取用户需要验证的所有有效规则列表
if (is_string($name)) {
$name = strtolower($name);
// if (strpos($name, ',') !== false) {
// $name = explode(',', $name);
// } else {
// $name = [$name];
// }
$name = strpos($name, ',') !== false ? explode(',', $name) : [$name];
}
$list = []; //保存验证通过的规则名
if ($mode == 'url') {
$REQUEST = unserialize(strtolower(serialize($_REQUEST)));
}
foreach ($authList as $auth) {
$query = preg_replace('/^.+\?/U', '', $auth);
if ($mode == 'url' && $query != $auth) {
parse_str($query, $param); //解析规则中的param
$intersect = array_intersect_assoc($REQUEST, $param);
$auth = preg_replace('/\?.*$/U', '', $auth);
if (in_array($auth, $name) && $intersect == $param) { //如果节点相符且url参数满足
$list[] = $auth;
}
} else if (in_array($auth, $name)) {
$list[] = $auth;
}
}
if ($relation == 'or' and ! empty($list)) {
return true;
}
$diff = array_diff($name, $list);
if ($relation == 'and' and empty($diff)) {
return true;
}
return false;
} 最佳答案