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());
我遇到了这个错误,但我无法修复它。这里的所有解决方案都使用较旧的 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());