Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “如何修复错误”;类别';App\\Db\\Database';“未找到”;关于slim框架_Php_Slim - Fatal编程技术网

Php “如何修复错误”;类别';App\\Db\\Database';“未找到”;关于slim框架

Php “如何修复错误”;类别';App\\Db\\Database';“未找到”;关于slim框架,php,slim,Php,Slim,我正在尝试使用我在线上传的项目(cpanel共享主机)中的postman进行API调用,但不断出现以下错误: { "statusCode": 500, "error": { "type": "SERVER_ERROR", "description": "Class 'App\\Db\\Database' not found" } } 以下是我的控制器在我

我正在尝试使用我在线上传的项目(cpanel共享主机)中的postman进行API调用,但不断出现以下错误:

{
"statusCode": 500,
"error": {
    "type": "SERVER_ERROR",
    "description": "Class 'App\\Db\\Database' not found"
   }
}
以下是我的控制器在我发出请求时尝试测试登录API:

namespace App\Controllers;

use App\Db\Database;
use Firebase\JWT\JWT;
use Respect\Validation\Exceptions\NestedValidationException;
use Slim\Psr7\Response;
use Respect\Validation\Validator as v;

class LoginController
{
public function __construct($data, Response $response)
{
    $validator = v::keySet(
        v::key('username', v::stringType()->notEmpty()->setName('username')->length(2, 100)),
        v::key('password', v::stringType()->notEmpty()->setName('password'))
    );

    try {
        $validator->assert($data);
    } catch (NestedValidationException $e) {
        $response->getBody()->write(json_encode([
            'responseCode' => "13",
            'responseMessage' => $e->getMessages(),
        ]));
        return $response->withHeader('Content-Type', 'application/json');
    }

    $username = $data['username'];
    $password = $data['password'];

    $hash_pwd = password_hash($password, PASSWORD_DEFAULT);
    $db = Database::getInstance();

    $login_query =
        $db->select(
            'users',
            [
                'email_address',
                'passwords'
            ],
            [
                'email_address' => $username,
            ]
        );

    if (!$login_query) {
        $response->getBody()->write(json_encode([
            'responseCode' => '99',
            'responseMessage' => "Invalid Login Details"
        ]));
    } else {
        $user_hash_pwd = $login_query[0]['passwords'];
        $password_verify = password_verify($password, $user_hash_pwd);
        if ($password_verify) {
            $key = "!@#$%^&*()_+";
            $payload = array(
                "iss" => "http://localhost",
                "aud" => "http://localhost",
                'iat' => time(),
                'uid' => 1,
                'exp' => time() + 10,
            );
            $token = JWT::encode($payload, $key);
            $decoded = JWT::decode($token, $key, array('HS256'));


            $response->getBody()->write(json_encode([
                'responseCode' => '0',
                'responseMessage' => "Logged In",
                'responseBody' => [
                    'token' => $token
                ]
            ]));
        } else {
            $response->getBody()->write(json_encode([
                'responseCode' => '99',
                'responseMessage' => "Incorrect password"
            ]));
        }
    }
 }
}

端点是api/v1/login。
虽然数据库连接详细信息正确,但名称空间也正确。请告诉我如何修复此问题?

不熟悉Slim,但您是否定义了
App\Db\Database
类?是的,我定义了@JetoThen,请共享其名称空间定义及其文件夹位置。名称空间定义:名称空间App\Db;位置:public_html/api/src/Model/Database(在cpanel上)我猜Slim使用的是PSR-4自动加载,这意味着您的类需要放在
../src/App/Db
文件夹中。