我正在制作一个小型应用程序,只是为了掌握 REST 的窍门,但我在使用 DELETE 方法时遇到了一些问题。我以前从未使用过它,所以我不确定它的行为如何。
无论如何,我按照本教程掌握了基础知识。我对其进行了修改,因此用户可以提交数据并从 MySQL 数据库中查看它,而不是使用预制数组。
我有 3 个文件:
server.php - 确定使用的方法并采取相应措施的“API”
input.php - 显示一个表单供用户输入数据
viewinput.php - 显示已输入的输入。
我现在正试图在 viewinput.php 上放置一个“删除”按钮,以便可以删除一个条目。这是我的代码,显示输入的信息。
while ($result = mysql_fetch_array($sql)){
?>
<tr><td><? echo $result['id']." "; ?></td><td><? echo $result['text']; ?></td>
<form method = "delete" >
<td><input type="submit" name="delete" value="delete"></input></td></tr>
<input type="hidden" name = "hidden_delete" value="<? echo $result['id']; ?>"></input>
</form>
<?
}
现在,在我的 server.php 文件(API)中,这是第一个被调用的函数,它确定方法并将 URL 分解为组件以供进一步处理。
public function serve() {
$uri = $_SERVER['REQUEST_URI'];
echo $method = $_SERVER['REQUEST_METHOD']; //GET and POST are displayed, DELETE isn't
$paths = explode('/', $this->paths($uri));
array_shift($paths); //
$resource = array_shift($paths);
当我按下删除按钮时,URL 来自
/rest/viewinput
至
/rest/viewinput?delete=delete&hiddendelete=3 //assuming I deleted the 3rd entry
据我了解,提交 DELETE 方法时,URL 应该是 /rest/viewinput/3
在我的 server.php 文件中,当我回显该方法时,不会像 POST 和 GET 方法那样显示“DELETE”。
我发现了这个关于 DELETE 的资源,据我所知,标识符将通过 URL 传递,但应该有一些接收到的方法,就像 GET 和 POST 一样(这意味着当我回显该方法时,我的代码应该显示 DELETE)。