1

我有一个有 2 页的 Yii 网站site.com/user/createsite.com/user/create.json

我需要为两个页面设置一个控制器。

  1. 我如何为这些制定路线 - 我试过了<controller:\w+>/<action:\w+>.json'=>'<controller>/<action>)但它没有帮助
  2. 如何在控制器中识别请求是针对 JSON 还是 HTML - 我已经尝试过$_SERVER['CONTENT_TYPE'],在 REST 客户端中没问题,但在浏览器中我收到了 PHP 通知Undefined index: CONTENT_TYPE
4

1 回答 1

2

至少有两种方法:

  1. Yii::app()->request->getRequestUri();将为您提供请求 URI - 最后检查它的 .json 扩展名。您在问题中的路由规则应该可以工作并将请求发送到正确的控制器和操作。
  2. 您可以像这样制定路由规则:

    <controller:\w+>/<action:\w+>.json'=>'<controller>/<action>/format/json
    

    然后检查format您的操作中的参数。

我建议第二种方式,因为它是可扩展的。

于 2012-06-13T18:18:54.083 回答