PHP Fatal error: Class 'Slim' not found - Slim Framework 3

PHP Fatal error: Class 'Slim' not found - Slim Framework 3

我遇到了这个错误,但我无法修复它。这里的所有解决方案都使用较旧的 Slim 版本,主要是关于注册自动加载器,在本例中处理。

究竟是什么导致了这个错误?它说它发生在函数 addJob() 中的代码 $request = Slim::getInstance()->request(); 中,即缺少 Slim class。

require 'vendor/autoload.php';

$app = new \Slim\App; 

$app->post('/add_job', 'addJob');

$app->run();

function addJob() {
    $request = Slim::getInstance()->request();       // <------ ERROR
    $job = json_decode($request->getBody());
    $sql = "INSERT INTO jobs (title, company, description, location) VALUES (:title, :company, :description, :location)";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);  
        $stmt->bindParam("title", $job->title);
        $stmt->bindParam("company", $job->company);
        $stmt->bindParam("description", $job->description);
        $stmt->bindParam("location", $job->location);
        $stmt->execute();
        $job->id = $db->lastInsertId();
        $db = null;
        echo json_encode($job); 
    } catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

究竟是什么导致了这个错误?

  • class Slim\Slim 不再存在

不要从静态共享实例获取请求,而是使用作为第一个参数传递给 addJob 函数的请求

function addJob(MessageInterface $request) {
    $job = json_decode($request->getBody());