PHP致命错误:Class' Slim'找不到 - Slim Framework 3

时间:2016-01-17 03:59:04

标签: php slim

我收到此错误,但我无法解决此问题。这里的所有解决方案都使用较旧的Slim版本,主要是注册自动加载器,在这种情况下处理。

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

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

1 个答案:

答案 0 :(得分:1)

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

  • 类Slim \ Slim不再存在

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

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