FuelPHP 系列(二) ------ route 路由
FuelPHP 中,默认可以通过 /controller_name/function_name 这种方式来访问,也可以通过自定义路由来访问。
路由配置在 /fuel/app/config/routes.php 文件中。
一、最简单的路由设置,键值对形式。
return array(
'article' => 'article/index',
'article/add' => 'article/create',
'article/edit' => 'article/edit',
);
键名是 URL 中输入的内容,对应的值为请求的控制器中的方法。
二、在路由中加入一些规则
| :any | 可以匹配任意字符,但不能为空 |
| :everything | 匹配任何字符 |
| :segment | 匹配 URL 的一部分,这一部分可以是任何字符, |
| :num | 匹配任意数字 |
| :alpha | 匹配希腊字母 |
| :alnum | 匹配任意字母和数字 |
return array(
'article/(:any)' => 'article/indexxxxx',
'article(:everything)' => 'article/add',
'(:segment)/article' => 'test/article',
'(:segment)article' => 'test1/article',
'(\d{2})/article' => 'site2/article',
'blog/:year/:month/:id' => 'blog/entry',
);
三、根据不同请求方式,把 URL 路由到控制器的方法,有 GET、POST、DELETE 等。
return array(
'blog' => array(array('GET', new Route('blog/all')), array('POST', new Route('blog/create'))),
'blog/(:any)' => array(array('GET', new Route('blog/show/$1'), true)),
);
这个也可以和上面的规则结合使用。
四、设置有名字的路由
return array(
'admin/start/overview' => array('admin/overview', 'name' => 'admin_overview'),
);
静态页面中,可以用路由 name 实现点击跳转
echo Html::anchor(Router::get('admin_overview'), 'Overview');
<a href="{Router::get('admin_overview')}">Overview</a>
五、core 目录下的 Route 类
1、 add($path, $options = null, $prepend = false, $case_sensitive = null) 添加一条路由
$path 路由指向的控制器的方法
$options 路由中的参数
$prepend true 路由为已经加载的路由做准备
$case_sensitive 是否大小写敏感
Router::add('this/that', 'something/else'); //类似一中的简单键值对
2、 get($name, $named_params = array()) 通过已定义的路由名字,获取路由
$name 已定义的路由名称
$named_params 路由参数
//1、
return array(
'thread/(?P<thread_id>\d+?)/post' => array('post', 'name' => 'post'),
); //根据上面定义的路由,下面这些将返回 'thread/1/post':
echo Router::get('post', array('thread_id' => 1));
echo Router::get('post', array('$1' => 1));
echo Router::get('post', array(1)); //2、
return array(
'country/(?P<country>\d+?)/state/(?P<state>\d+?)/location' => array('location', 'name' => 'location'),
); // 根据上面定义的路由,下面这些将返回 'country/japan/state/tokyo/location':
echo Router::get('location', array('country' => 'japan', 'state' => 'tokyo'));
echo Router::get('location', array('$1' => 'japan', '$2' => 'tokyo'));
echo Router::get('location', array('japan', 'tokyo'));
echo Router::get('location', array('country' => 'japan', 'tokyo'));
echo Router::get('location', array('$1' => 'japan', 'tokyo'));
3、 delete($path, $case_sensitive = null) 删除已定义的路由
$path 路由 URL
$case_sensitive 是否大小写敏感
// 删除路由 'this/that'
Router::delete('this/that'); // 删除路由 'this/that' 和'some/other'
Router::delete(array('this/that', 'some/other')); // 设置路由区分大小写
Router::delete('this/that', true); // 删除 module controller 的所有路由
Router::delete('module/controller(:any)');
FuelPHP 系列(二) ------ route 路由的更多相关文章
- 探索ASP.Net Core 3.0系列二:聊聊ASP.Net Core 3.0 中的Startup.cs
原文:探索ASP.Net Core 3.0系列二:聊聊ASP.Net Core 3.0 中的Startup.cs 前言:.NET Core 3.0 SDK包含比以前版本更多的现成模板. 在本文中,我将 ...
- Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】
<Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...
- Laravel教程 二:路由,视图,控制器工作流程
Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就 ...
- [知识库分享系列] 二、Web(高性能Web站点建设)
知识库分享系列: [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍 此知识库之所以为 Web 系列,因为和 .NET 没有完全的关系,其中的技术和实践实用于各 ...
- MVC3/4/5/6 布局页及Razor语法及Route路由配置
一.目录结构 二.Razor语法 代码块:@{},如:@{Html.Raw(“”);} @if(){} @switch(){} @for(){} @foreach(){} @while(){} @do ...
- Flask系列(二)Flask基础
知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref(django),werkzeug(flask),uwsgi(上线) 2.实例化Flask对象,里面是有参数的 app = F ...
- struts2官方 中文教程 系列二:Hello World项目
先贴个本帖的地址,免得其它网站被爬去了struts2入门系列二之Hello World 即 http://www.cnblogs.com/linghaoxinpian/p/6898779.html ...
- 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 四.创建一个Blazor应用程序 1. 第一种创 ...
- 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(完)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 前端构建大法 Gulp 系列 (二):为什么选择gulp
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
随机推荐
- Spring framework3.2整合hibernate4.1报错:No Session found for current thread
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransact ...
- Jmeter上传下载文件
每次使用时都会忘记,此处是存储网路上通用的方式. 1.上传文件 记得勾选“use multipart/form-data for post”,表明此请求包含文件信息.在信息请求头中,需加入“Con ...
- 关于mydumper的.metadata文件丢失
今天要进行MySQL的数据迁移,所以把数据库通过mydumper工具备份的文件解压后.通过myloader进行导入 可是导入的时间出现这个报错: ** (myloader:766): CRITICAL ...
- 从0开始学golang--2.1--如何去爬园子的数据
20天过去了,才开始写...主要还是因为自己懒吧.之前一边上班一边也有挤时间练习golang,可是写博客却老是不能行动,跑步也没跑了.突然的就懈怠了快一个月.可能也和开始玩the elder scro ...
- S5PV210 DDR2初始化 28个步骤总结
看了一套视频,感觉DDR这个部分将的非常细致也很好,于是把视频内容花了一个多星期作了总结. 这个视频就是不知道是谁讲的,做好事不留名啊---那位知道告诉我哈-- 平台:S5PV210 DDR: 兼容 ...
- 蓝牙inquiry流程之HCI_Inquiry_Result_With_RSSI和HCI Extended Inquiry Result处理
首先介绍一下和inquiry的相关的流程. inquiry是从协议栈下发的一个HCI命令.其格式如下: 这里简单介绍下第二个参数,是inquiry的持续时间, 从上图看出 inquiry持续的时间是 ...
- zabbix问题之snmp监控端口流量断图
zabbix之snmp监控端口断图问题 在使用zabbix的snmp方式的监控端口流量时,某一个图总是断断续续的(被监控设备有较大的端口流量),经常会出现几分钟内没有图像的问题. 端口流量断图原因: ...
- task1
centos定时任务 清空特定目录文件 https://www.jb51.net/article/151066.htm 这次linux下不生成日志文件主要是因为日志框架冲突问题,我解决问题的思路错了 ...
- phpmyadmin连接MySQL服务器被拒绝
显示: phpMyAdmin 尝试连接到MySQL服务器,但服务器拒绝连接.您应该检查配置文件中的主机.用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致. 原因: 可能是修改了 ...
- 最简单的iOS网络请求
做iOS开发,说到网络请求,大家可能都不约而同的提到AFN,可以说大家的网络请求都是用AFN封装而成,AFN的强大易用的确很好. 但是版本升级就会出现一些问题,所以就自己基于iOS原生封装了一个网络请 ...