在我的symfony1项目中,我需要创建一个url来获取所有者列表。我在routing.yml中创建了一个路由,如下所示:
#owner
owner_list:
url: /:id/owner/list.:sf_format
param: { module: owner, action: list }
requirements:
sf_format: (?:json)然后,我在'apps‘目录下的项目文件夹的'modules’文件夹中添加了一个文件夹'owner‘。我在该文件夹中添加了一个文件夹'actions‘和一个文件'actions.class.php’。
我的actions类看起来像这样:
class ownerActions extends sfActions {
/**
* Executes list action
*
* @param sfRequest $request A request object
*/
public function executeList(sfWebRequest $request)
{...
$this->getResponse()->setContentType('application/json');
$this->getResponse()->setContent(json_encode($this->owners));
return sfView::NONE; } }当我转到url http://website/project/id/owner/list.json时,它应该转到我创建的新操作并输出json。相反,它给出了一个403错误。
在这个项目中还有许多其他的操作,都是以相同的方式创建的,我能够访问。
你知道我为什么以及如何解决这个问题吗?
发布于 2013-06-21 01:20:47
我想出了解决方案。需要将:options: restricted: false添加到我的路由
发布于 2013-06-20 15:37:51
你写了
url: /:id/owner/list.:sf_format但是被调用的url是
/id/owner/list.json是否应该有id (我猜是数字)而不是文字"id"?
我自己也没有试过,但是路由会接受一个变量参数作为第一个url元素吗?调用此函数时,您的appname_dev.php的输出是什么?
https://stackoverflow.com/questions/17191992
复制相似问题