PHP致命错误:找不到超薄类-超薄框架3

人气:559 发布:2022-10-16 标签: php slim

问题描述

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

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

require 'vendor/autoload.php';

$app = new SlimApp; 

$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() .'}}'; 
    }
}

推荐答案

究竟是什么原因导致此错误?

超薄班级已不复存在

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

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

877