如何在 SocialEngine Zend 中创建自定义 API 路由
How to create a custom API route in SocialEngine Zend
我在 SocialEngine 中创建了一个新的 REST API 模块,可以通过 http://server_address/mymodule
或 http://server_address/mymodule/index
浏览。我在 controllers
目录中有一个控制器 class Mymodule_IndexController
。它有一个方法 indexAction
,我在其中输出一些 JSON 响应。有效。
问题是,如何添加另一条路线和相应的操作,例如food/browse
在此模块中。我已经在 manifest.php
中添加了以下路由,但是当我浏览到 http://server_address/mymodule/browse
时,路由没有解析(页面未找到错误)。
'routes' => array(
'food_general' => array(
'route' => 'advancedrestapi/:controller/:action/*',
'defaults' => array(
'module' => 'advancedrestapi',
'controller' => 'index',
'action' => 'index',
),
'reqs' => array(
'controller' => '\D+',
'action' => '\D+',
),
),
如何向我的模块引入新的自定义路由和相应的 PHP 方法?
要添加自定义路由,您需要添加一个与 'action' 同名的文件,然后添加 .tpl 扩展名。因此,对于有问题的路线 ('action'=>'browse'
),您将需要一个文件 application/modules/mymodule/views/scripts/index/browse.tpl
。该文件可以为空。
然后,您将需要向您的 IndexController 添加一个新方法 class browseAction
(action + Action
)。在方法中编写您的逻辑,您将能够通过 http://server_address/mymodule/index/browse
.
访问操作
我在 SocialEngine 中创建了一个新的 REST API 模块,可以通过 http://server_address/mymodule
或 http://server_address/mymodule/index
浏览。我在 controllers
目录中有一个控制器 class Mymodule_IndexController
。它有一个方法 indexAction
,我在其中输出一些 JSON 响应。有效。
问题是,如何添加另一条路线和相应的操作,例如food/browse
在此模块中。我已经在 manifest.php
中添加了以下路由,但是当我浏览到 http://server_address/mymodule/browse
时,路由没有解析(页面未找到错误)。
'routes' => array(
'food_general' => array(
'route' => 'advancedrestapi/:controller/:action/*',
'defaults' => array(
'module' => 'advancedrestapi',
'controller' => 'index',
'action' => 'index',
),
'reqs' => array(
'controller' => '\D+',
'action' => '\D+',
),
),
如何向我的模块引入新的自定义路由和相应的 PHP 方法?
要添加自定义路由,您需要添加一个与 'action' 同名的文件,然后添加 .tpl 扩展名。因此,对于有问题的路线 ('action'=>'browse'
),您将需要一个文件 application/modules/mymodule/views/scripts/index/browse.tpl
。该文件可以为空。
然后,您将需要向您的 IndexController 添加一个新方法 class browseAction
(action + Action
)。在方法中编写您的逻辑,您将能够通过 http://server_address/mymodule/index/browse
.