我正在尝试为我的API实现以下URL(我正在使用Codeigniter和Phil Sturgeon的REST服务器库):
/players -> refers to index method in the players controller
/players/rookies -> refers to rookies method in the players controller
我不希望网址有尾随的“索引”
/players/index
当我这样定义路线时,这一点都没有问题:
$route['players'] = 'players/index';
一切正常。
我的问题是我需要额外的URL段,如:
/players/rookies/limit/10/offset/5/key/abcdef
上述示例有效,但以下示例无效:
/players/limit/10/offset/5/key/abcdef
我得到以下错误:{“status”:false,“error”:“Unknown method.”
显然,我的控制器中没有
限制
方法。
如何设置routes.php配置文件以使这些URL正常工作?
非常感谢您的帮助!
Gregory,正如你自己所说的/玩家指的是玩家控制器中的索引方法,这意味着如果你的路由是干净的,你不应该需要有$路由['玩家']='玩家/索引'。
您可以拥有任意多的段,并获得URI类来在脚本中区分它们。这意味着默认情况下,这个网址“/球员/菜鸟/限制/10/偏移/5/键/abcdef”应该会导致你的球员控制器,菜鸟()方法。以下是你如何获得你的片段:
function rookies () {
//$this->uri->segment (1); would return 'players' or 'limit'
//$this->uri->segment (8); would return 'abcdef' or false
}
此外,对于/玩家/工作限制:
function limit () {
$this->rookies();
}
编辑1
这里有另一种方法:
路由规则:
$route['/players/rookies/limit/(:num)/offset/(:num)/key/(:any)'] = "players/get"
$route['/players/limit/(:num)/offset/(:num)/key/(:any)'] = "players/get"
控制器
function get () {
//work with segments
}
//www.mysite.com/players
$route['players'] = 'players/index_get';//initial call to players index
//www.mysite.com/players/rookies
/** overrides the above **/
$route['players/(:any)'] = 'players/index_get/$1';//Changing defaults index
//www.mysite.com/players/rookies/10/4
/** overrides the above **/
$route['players/(:any)/(:num)/(:num)'] = 'players/index_get/$1/$2/$3';//Changing type,limit,offset
//All routes that are similar, like above that follow the previous, override the preceding one.
//www.mysite.com/players/create
//overrides $route['players/(:any)']
$route['players/create'] = 'players/index_post';
class Players extends REST_Controller
{
public $player_types = array();
public function __construct(){
$this->player_types = array(
'rookies', 'seniors'
);//manual assign or pull from db
}
/**
* Index
* $_GET
**/
public function index_get($type='rookies',$offset=0, $limit=0)//some defaults to show on initial call
{
// www.mysite.com/players/rookies
// $route['players/(:any)'] = 'players/index_get/$1';
// First uri segment, check to see if its a valid player 'type'
if(!in_array(strtolower($type), $this->player_types)){
//redirect ?
return;
}
}
/**
* Index
* $_POST
**/
public function index_post()
{
// Create a new player
}
}
我正在研究spring MVC,并使用Apache camel来集成外部服务。我想使用Apache Camel route进行Webservice调用。 就像我的本地REST服务(http://localhostsmiliex.xx:8080/users)从外部REST服务获取数据(http://xxx:000/users)并希望通过路由获取外部数据。 哪个Apache组件适合Jetty或prod
路由服务 首先,要理解什么是 router,router是提供跨 subnet 的互联功能的。比如用户的内部网络中主机想要访问外部互联网的地址,就需要router来转发(因此,所有跟外部网络的流量都必须经过router)。目前router的实现是通过iptables进行的。 同样的,router服务也运行在自己的名字空间中,可以通过如下命令查看: $ sudo ip net exec qroute
1. 简介 上一篇文章分析了集群容错的第一部分 — 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在详细分析服务路由的源码之前,先来介绍一下服务路由是什么。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别
我想把react-route添加到我的应用程序中,我有下面的代码: 更新:已安装react-router 3.0.2并工作。
问题内容: 我一直在思考,我对客户端和服务器之间的路由感到困惑。假设我在将请求发送回Web浏览器之前使用ReactJS进行服务器端渲染,并使用react- router作为客户端路由在页面之间切换而不刷新为SPA。 我想到的是: 路线如何解释?例如,从首页()到帖子页面()的请求 路由在服务器端还是客户端去哪里? 它如何知道如何处理? 问题答案: 注意,此答案涵盖了React Router版本0.
我想到的是: 路线是如何解释的?例如,从主页()到帖子页()的请求 路由在服务器端还是客户端? 它如何知道它是如何处理的?
我对CODEIGnite分页和路由有问题 我将route设置为我的函数类,如下所示: 然后在我的控制器中,我创建了一个调用并加载分页库的函数,除了分页导航外,一切都正常:( 页面加载成功… 且数据正确… 当我单击示例第2页时,页面2加载成功,但分页导航显示页面I按钮…! 当我调用第4页表单url(http://localhost/d/index.php/admin/panel/students/n
ASUS 华硕路由器 注意 Windows 所装 Home Assistant 无法使用此组件。 更新提示 本插件配置方法自 0.82 版本开始发生变化,请及时更新。 使用前请前往路由器管理界面 —— 系统管理 —— Enable SSH 或 启动 Telnet asuswrt: host: 路由器IP username: 路由器账号 password: 路由器密码 protoc