我收到此错误,但我无法解决此问题。这里的所有解决方案都使用较旧的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() .'}}';
}
}
答案 0 :(得分:1)
究竟是什么原因导致此错误?
而不是从静态共享实例获取请求,使用一个作为第一个参数传递给addJob函数的实例
function addJob(MessageInterface $request) {
$job = json_decode($request->getBody());