0

在我的 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;    }    }

当我转到 urlhttp://website/project/id/owner/list.json时,它应该转到我创建的新操作并输出 json。相反,它给了我一个 403 错误。

该项目中还有许多其他操作以相同的方式创建并且我可以访问。

任何想法为什么以及如何解决这个问题?

4

2 回答 2

0

我想出了解决方案。需要添加: options: restricted: false 到我的路线

于 2013-06-20T17:20:47.070 回答
0

你写了

url: /:id/owner/list.:sf_format

但是被调用的网址是

/id/owner/list.json

应该有一个id(我猜是数字)而不是文字“id”吗?

而且我还没有尝试过自己,但是路由会接受可变参数作为第一个 url 元素吗?调用此函数时 [appname]_dev.php 的输出是什么?

于 2013-06-20T07:37:51.283 回答