我正在尝试使用 Parse 作为云数据库在 Symfony2 中创建 API Rest。
如果我尝试检索 Parse 用户,它可以正常工作并返回预期的数据。
本地网址示例:http://www.foo.local/app_dev.php/getUsers/
这是我在用户控制器中使用的代码(我使用注释来设置控制器中的路由):
namespace Foo\ApiBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\View;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseUser;
class UsersController extends Controller
{
/**
* @return array
* @View()
* @Route("/getUsers/")
*/
public function getUsersAction(Request $request) {
ParseClient::initialize(<my Parse keys>);
$query = ParseUser::query();
$results = $query->find();
return array('users' => $results);
}
}
但是,如果我对我的 Products ParseObjects 尝试相同的操作,我会收到以下错误消息:
error code="500" message="Internal Server Error" exception class="Doctrine\Common\Annotations\AnnotationException" message="[Semantical Error] Parse\ParseFile::getData() 方法中的注释“@returns”从未已导入。您是否可能忘记为此注释添加“使用”语句?
本地网址示例:http://www.foo.local/app_dev.php/getProducts/
产品控制器代码:
namespace Foo\ApiBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\View;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Parse\ParseClient;
use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseUser;
use Parse\ParseFile;
class ProductsController extends Controller
{
/**
* @return array
* @View()
* @Route("/getProducts/")
*/
public function getProductsAction(Request $request) {
ParseClient::initialize(<my Parse keys>);
$query = new ParseQuery("Products");
$results = $query->find();
return array('products' => $results);
}
}
如果我没有返回,而是$results
返回其他虚拟数据,例如return array('products' => 'fooProducts')
,我不再收到错误消息。
此外,如果我创建一个var_dump
变量$results
,我会得到预期的 ParseObjects 数组。
这是我的 routing.yml 文件,以防它出现问题:
api:
resource: "@FooApiBundle/Controller/"
type: annotation
prefix: /
users:
type: rest
resource: Foo\ApiBundle\Controller\UsersController
products:
type: rest
resource: Foo\ApiBundle\Controller\ProductsController
根据错误消息,问题似乎与 Doctrine 有关,但由于我没有使用它,我不知道究竟是如何发生冲突或如何解决它。有什么建议么?