在我的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'文件。
我的动作类看起来像这样:
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; } }
当我转到网址http://website/project/id/owner/list.json
时,它应该转到我创建的新操作并输出json。
相反,它给了我403错误。
此项目中还有许多其他操作以相同的方式创建,我可以访问。
任何想法为什么以及如何解决这个问题?
答案 0 :(得分:0)
你写了
url: /:id/owner/list.:sf_format
但被叫网址是
/id/owner/list.json
是否应该有id(我猜数字)而不是文字“id”?
我还没有尝试过,但路由会接受一个变量参数作为第一个url元素吗? 调用它时,[appname] _dev.php的输出是什么?
答案 1 :(得分:0)
我找到了解决方案。
需要添加:
options: restricted: false
到我的路线