我有控制器:
class MyController extends AbstractRestfulController{
protected $myTable;
public function getList(){
$results = $this->getMyTable()->fetchAll();
$data = array();
foreach($results as $result) {
$data[] = $result;
}
return new JsonModel(array(
'data' => $data
));
}
[...]
我检查:
curl -i -H "Accept: application/json" http://localhost/myapp/restroute -X GET
,没关系。但我想向此方法发送额外数据,例如:
curl -i -H "Accept: application/json" http://localhost/myapp/restroute -X GET -d "name=john"
如何在getList()方法中读取此数据?
我可以使用create($ data)方法但不知何故它不适合我(create方法用于创建等)。我想要,例如获取$ _GET中受变量限制的某些类型对象的列表。
答案 0 :(得分:3)
在AbstractRestfulController
内,有一个名为processBodyContent
的辅助方法,非常适合您尝试做的事情:
public function getList()
{
$content = $this->processBodyContent($this->getRequest());
$name = array_key_exists('name', $content) ? $content['name'] : '';
// ...
}
当你使用GET时,你应该考虑做:
curl -i -H "Accept: application/json" http://localhost/myapp/restroute?name=john -X GET
然后您可以在getList()
内检索:
public function getList()
{
$name = $this->params()->fromQuery('name');
// ...
}