2013-03-07 43 views
0

我控制器:如何获取getList()中的额外数据?

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)方法,但它不适合我(创建方法是创建等)。我想,例如获取$ _GET中由变量限制的某些类型对象的列表。

回答

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'); 

    // ... 
} 
相关问题