Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php zend framework 2中的create($data)未收到任何内容_Php_Zend Framework2_Zend Rest - Fatal编程技术网

Php zend framework 2中的create($data)未收到任何内容

Php zend framework 2中的create($data)未收到任何内容,php,zend-framework2,zend-rest,Php,Zend Framework2,Zend Rest,我正在应用一个关于使用ZF2RESTAPI创建restful应用程序的教程 我遇到了一个奇怪的问题,除了create$data之外,其余所有动作都能完美地工作 我在Firefox中使用了restful插件,数据如下所示 artist=testName&title=testTitle 我跟踪了这个问题,发现变量$datas总是空的,并且不存储任何值。另一方面,当我使用update$id$data时,一切都很好 public function update($id, $data)

我正在应用一个关于使用ZF2RESTAPI创建restful应用程序的教程

我遇到了一个奇怪的问题,除了create$data之外,其余所有动作都能完美地工作

我在Firefox中使用了restful插件,数据如下所示

artist=testName&title=testTitle
我跟踪了这个问题,发现变量$datas总是空的,并且不存储任何值。另一方面,当我使用update$id$data时,一切都很好

    public function update($id, $data)
    {
      $data['id'] = $id;
      $album = $this->getAlbumTable()->getAlbum($id);
      $form = new AlbumForm();
      $form->bind($album);
      $form->setInputFilter($album->getInputFilter());
      $form->setData($data);

     if ($form->isValid()) {
       $id = $this->getAlbumTable()->saveAlbum($form->getData());
     }

    return new JsonModel(array('data' => $data));
   }
我能有一些建议吗

更新一:

下面是module.config.php文件,查看其中是否有错误

<?php
return array(
'controllers' => array(
    'invokables' => array(
        'AlbumRest\Controller\AlbumRest' => 'AlbumRest\Controller\AlbumRestController',
    ),
), 
// The following section is new` and should be added to your file
'router' => array(
    'routes' => array(
        'album-rest' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album-rest[/:id]',
                'constraints' => array(
                    'id' => '[0-9]+',
                ),
                'defaults' => array(
                'controller' => 'AlbumRest\Controller\AlbumRest',
                ),
            ),
        ),
    ),
),
    'view_manager' => array( 
        'strategies' => array(
            'ViewJsonStrategy',
        ),
    ),
);
更新二:


问题来自Firefox RestfulClient。我安装了邮递员,它工作得很好。

您在创建函数时有任何错误吗?@dixromos98否,状态代码:200 OK连接:保持活动内容长度:18内容类型:应用程序/json;charset=utf-8日期:2014年9月29日星期一07:54:31 GMT保持活动状态:超时=5,最大值=100,但当我返回或保存内容$data时,它显示为空。如果$form->isValid evaluate为false,我真的不知道为什么$data没有收到任何东西。这可能是路由的问题。我将更新后扫描。您还可以在创建函数中显示您传递的数据?artist=testName&title=testtitleok,这就是问题所在。其计算结果为false的原因是setData方法需要一个数组。因此,您应该将数据从artist=testName&title=testTitle转换为data=arrayartistist=>testName,title=>testTitle
<?php
return array(
'controllers' => array(
    'invokables' => array(
        'AlbumRest\Controller\AlbumRest' => 'AlbumRest\Controller\AlbumRestController',
    ),
), 
// The following section is new` and should be added to your file
'router' => array(
    'routes' => array(
        'album-rest' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/album-rest[/:id]',
                'constraints' => array(
                    'id' => '[0-9]+',
                ),
                'defaults' => array(
                'controller' => 'AlbumRest\Controller\AlbumRest',
                ),
            ),
        ),
    ),
),
    'view_manager' => array( 
        'strategies' => array(
            'ViewJsonStrategy',
        ),
    ),
);