持仓 Restful 看跌
Kohana Restful Put
我在 kohana restfull api 中遇到问题。
貌似我的$post不行,因为我用这个函数后只能看到'Data not found!'。任何的想法?感谢帮助。
这是我的代码。
$trg_id = $this->request->param('id');
if ($trg_id) {
$post = $this->request->post();
if ($post) {
$objTrackingGroup = ORM::factory('Orm_trackingGroup', $trg_id);
if ($objTrackingGroup->loaded()) {
$objTrackingGroup->values($post)
->save();
$this->rest_output($data, 200);
} else {
$data = array(
'code' => 500,
'error' => 'Unknown error'
);
$this->rest_output($data, 500);
}
} else {
$data = array(
'code' => 404,
'error' => 'Data not found!'
);
$this->rest_output($data, 404);
}
}else {
$data = array(
'code' => 404,
'error' => 'Data not found'
);
$this->rest_output($data, 404);
}
您可以使用此 Kohana 模块与 Restfull API 一起工作。它有处理 PUT、UPDATE 方法的方法
https://github.com/SupersonicAds/kohana-restful-api
您可以使用
$this->request->query ();
$this->request->body ();
如果您在 query() 中收到参数,那么它是一个数组,您可以使用它,或者如果您请求的是 body() 中的 RAW 请求,那么您可以使用 parse_str 函数将其转换为数组。
这是我的例子
class Controller_RestTest extends Controller_REST {
public function action_index() {
}
public function action_update() {
echo Debug::vars ( $this->request->query () );
echo Debug::vars ( $this->request->body () );
}
}
对于这个 PUT 请求,我得到了这个响应
PUT http://localhost/RestTest?a=1234&b=4567
Content-Type: application/x-www-form-urlencoded
?body-contents=this is boy contents
-- response --
200 OK
Server: nginx
Date: Tue, 11 Oct 2016 11:43:44 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 158
Connection: keep-alive
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Vary: Accept-Encoding
Content-Encoding: gzip
X-Powered-By: PHP/5.6.26
array(2) (
"a" => string(4) "1234"
"b" => string(4) "4567"
)
string(35) "?body-contents=this is boy contents"
我在 kohana restfull api 中遇到问题。 貌似我的$post不行,因为我用这个函数后只能看到'Data not found!'。任何的想法?感谢帮助。 这是我的代码。
$trg_id = $this->request->param('id');
if ($trg_id) {
$post = $this->request->post();
if ($post) {
$objTrackingGroup = ORM::factory('Orm_trackingGroup', $trg_id);
if ($objTrackingGroup->loaded()) {
$objTrackingGroup->values($post)
->save();
$this->rest_output($data, 200);
} else {
$data = array(
'code' => 500,
'error' => 'Unknown error'
);
$this->rest_output($data, 500);
}
} else {
$data = array(
'code' => 404,
'error' => 'Data not found!'
);
$this->rest_output($data, 404);
}
}else {
$data = array(
'code' => 404,
'error' => 'Data not found'
);
$this->rest_output($data, 404);
}
您可以使用此 Kohana 模块与 Restfull API 一起工作。它有处理 PUT、UPDATE 方法的方法 https://github.com/SupersonicAds/kohana-restful-api
您可以使用
$this->request->query ();
$this->request->body ();
如果您在 query() 中收到参数,那么它是一个数组,您可以使用它,或者如果您请求的是 body() 中的 RAW 请求,那么您可以使用 parse_str 函数将其转换为数组。
这是我的例子
class Controller_RestTest extends Controller_REST {
public function action_index() {
}
public function action_update() {
echo Debug::vars ( $this->request->query () );
echo Debug::vars ( $this->request->body () );
}
}
对于这个 PUT 请求,我得到了这个响应
PUT http://localhost/RestTest?a=1234&b=4567
Content-Type: application/x-www-form-urlencoded
?body-contents=this is boy contents
-- response --
200 OK
Server: nginx
Date: Tue, 11 Oct 2016 11:43:44 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 158
Connection: keep-alive
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Vary: Accept-Encoding
Content-Encoding: gzip
X-Powered-By: PHP/5.6.26
array(2) (
"a" => string(4) "1234"
"b" => string(4) "4567"
)
string(35) "?body-contents=this is boy contents"