Php “如何修复错误”;类别';App\\Db\\Database';“未找到”;关于slim框架
我正在尝试使用我在线上传的项目(cpanel共享主机)中的postman进行API调用,但不断出现以下错误: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" } } 以下是我的控制器在我
{
"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
文件夹中。