我得到了这个错误,但我一直无法修复它。这里的所有解决方案都使用旧的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() .'}}';
}
}发布于 2016-01-17 04:39:32
究竟是什么导致了这个错误?
不要从静态共享实例获得请求,而是使用一个作为第一个参数传递给addJob函数的实例。
function addJob(MessageInterface $request) {
$job = json_decode($request->getBody());https://stackoverflow.com/questions/34834950
复制相似问题