簡體   English   中英

DELETE方法的問題-PHP slim框架

[英]Issue with DELETE method- PHP slim framework

我有DELETE方法的問題。 下面是代碼,其中我收到DELETE方法的404 error 如果我使用get方法而不是delete方法,則代碼將正確執行。 請幫助我哪里我做錯了。

<?php
require "Slim/Slim.php";
require "NotORM/NotORM.php";
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();

$pdo = new PDO('mysql:host=localhost;dbname=rest_trial', 'uname', 'passwd');
$db = new NotORM($pdo);

//DELETE method
$app->delete("/deletebook/:id", function ($id) use($app, $db) {
//$app->get("/deletebook/:id", function ($id) use($app, $db) {
$app->response()->header("Content-Type", "application/json");
$book = $db->books()->where("id", $id);
if ($book->fetch()) {
    $result = $book->delete();
    echo "Book deleted successfully";
}
else{
    echo "Book id $id does not exist";
}
});
$app->run();

如果您在瀏覽器控制台的“網絡”選項卡中查找,則可以檢查請求的方法是否實際上是DELETE

某些瀏覽器不支持PUTDELETE http請求方法。 Slim為此提供了一種方法:

不幸的是,現代瀏覽器不提供對HTTP DELETE請求的本機支持。要解決此限制,請確保HTML表單的method屬性為“ post”,然后向HTML表單中添加方法重寫參數,如下所示:

<form action="/books/1" method="post">
    ... other form fields here...
    <input type="hidden" name="_METHOD" value="DELETE"/>
    <input type="submit" value="Delete Book"/>
</form>

如果您使用Backbone.js或命令行HTTP客戶端,則還可以使用X-HTTP-Method-Override標頭覆蓋HTTP方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM