PHP在控制器中获取PUT和DELETE数组

时间:2016-03-23 10:45:34

标签: php

我试图通过DOJO请求向我的控制器发出请求,

        request("/category/", {
            method: "PUT",
              data: {
                    original: event.target.getAttribute("data-original"),
                    edited: event.target.getAttribute("data-edited"),
                    id: event.target.getAttribute("data-id")
                }
        }).then(function(response) {
            response = JSON.parse(response);
            if(response.success) {
                createRow(response.id);
            } else {
                // handle validation errors here
            }
        });

这会向我的/category/路由发出一个PUT请求,该路由会被接收并发送给控制器,此时我想访问我认为没有的$_PUT超全球&# 39; t的存在方式与访问$_POST超全局的方式相同。

public function putIndex()
{
    try {
        try {
            $this->category->edit(
                new CategoryVO($request['id'], $request['original']),
                new CategoryVO($request['id'], $request['edited'])
            ); // This is where I'd like to access the values sent in the PUT request
            echo json_encode(
                array(
                    "success" => true
                )
            );
        } catch (CategoryValidation $validationException) {
            echo json_encode(
                array(
                    "success" => false,
                    "validation_errors" => $this->service->prepareErrors(
                        $validationException
                    )
                )
            );
        }
    } catch(\Exception $e) {
        echo json_encode(
            array(
                "success" => false,
                "unexpected_exception" => true
            )
        );
    }
}

仅供参考:自定义构建框架,因此不具备zf2 / codeigniter可能带来的任何优秀功能。

2 个答案:

答案 0 :(得分:0)

看看这是否对您有所帮助:https://stackoverflow.com/a/6270140/6097905

基本上你需要获取请求方法(我想它无论如何都会派上用场),然后检索数据,并以静态方式存储它。

答案 1 :(得分:0)

您确定没有$_PUT超全球,并且PUT请求中发送的数据不会出现在$_POST。< / p>

您必须手动从php://input读取数据,然后将其存储在某处。

谷歌搜索&#34; PHP PUT数据&#34;产生这个最佳结果,这有一个很好的例子: http://www.lornajane.net/posts/2008/accessing-incoming-put-data-from-php