我 && symfony3 (路由)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "Helvetica Neue"; color: #323333 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #dd2244; background-color: #f7f7f7 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #323333; background-color: #f7f7f7; min-height: 14.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #323333 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #011480; background-color: #f7f7f7 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #323333; background-color: #f7f7f7 }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #008080; background-color: #f7f7f7 }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #999988; background-color: #f7f7f7 }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Menlo; color: #999988; background-color: #f7f7f7; min-height: 14.0px }
li.li4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #323333 }
span.s1 { }
span.s2 { color: #323333 }
span.s3 { color: #999999 }
span.s4 { color: #011480 }
span.s5 { color: #008080 }
span.s6 { color: #991200 }
span.s7 { color: #999988 }
span.s8 { color: #dd2244 }
ul.ul1 { list-style-type: disc }
symfony 在控制器定义路由
@Route("/lucky/number") #必须用双引号
@Route("/api/get-lucky-number/{number}") #{number} 为传参
routing.yml 配置路由
api:
path: /api/{_locale}/{year}/{title}.{_format}
defaults: {_controller: AppBundle:Api:getJson, _format:html}
requirements:
_locale: en|fr
_format: html|rss
year: \d+
schemes: [http]
show:
path: /show.json
defaults: {_controller: AppBundle:Api:showUrl}
schemes: [http]
tpl:
path: /lucky/number
defaults: {_controller:AppBundle:Api:number}
schemes: [http]
- api : 表示该理由的别名,在 使用控制器使用 generate && generateUrl 可以使用到
- path : 表示访问到url ,其中参数可以用{}传递 ,传递到参数可以在 控制器中动作参数使用
- defaults : 表示对应到控制器及方法,APPBundle 表示控制器所在目录,Api 表示控制器,getJson 表示请求方法
- requirements : 表示参数到验证方式,其中 | 表示 ‘或’, \d+ 为匹配一个数字
- schemes : 表示对应到请求模式,http | https
下面介绍下在控制器中,如何使用这样到router
# $year,$title 就是{}中到参数, $_controller 表示控制器, $_route 对应别名 api,show, tpl
public function getJsonAction($title, $year, $_locale, $_format, $_controller, $_route)
{
$numbers = [];
for ($i = 0; $i < 10; $i++)
{
$numbers[] = rand(0, 100);
}
$other = ['title' => $title, 'year' => $year, '_locale' => $_locale, '_format' => $_format, '_controller' => $_controller, '_route' => $_route];
return new JsonResponse($other);
}
/**
#运行结果
{
title: "api",
year: "2014",
_locale: "en",
_format: "html",
_controller: "AppBundle\Controller\ApiController::getJsonAction",
_route: "api"
}
*/
public function showUrlAction()
{
//获取对应的url
$params = $this->get('router')->match('/lucky/number');
//生成uri
$uri = $this->get('router')->generate('api', [
'year' => '2022',
'title' => 'en',
]);
//生成带域名的url
$url = $this->generateUrl('api', [
'year' => '2022',
'title' => 'fr',
'_format' => 'html'
], UrlGeneratorInterface::ABSOLUTE_URL);
// $uri = '';
return new JsonResponse(['params' => $params, 'uri' => $uri, 'url' => $url]);
}
/**
{
params: {
_controller: "AppBundle\Controller\ApiController::numberAction",
_route: "app_api_number"
},
uri: "/api/en/2022/en",
url: "http://127.0.0.1:8000/api/en/2022/fr"
}
*/
- $this->get('router')->generate('api' , ... ) 表示获取一个uri
- $this->generateUrl('api', , UrlGeneratorInterface::ABSOLUTE_URL) 则表示生成绝对到url
我 && symfony3 (路由)的更多相关文章
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- nodejs进阶(3)—路由处理
1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- ASP.NET路由模型解析
大家好,我又来吹牛逼了 ~-_-~ 转载请注明出处:来自吹牛逼之<ASP.NET路由模型解析> 背景:很多人知道Asp.Net中路由怎么用的,却不知道路由模型内部的运行原理,今天我就给大家 ...
- 路由的Resolve机制(需要了解promise)
angular的resovle机制,实际上是应用了promise,在进入特定的路由之前给我们一个做预处理的机会 1.在进入这个路由之前先懒加载对应的 .js $stateProvider .state ...
- Android业务组件化之子模块SubModule的拆分以及它们之间的路由Router实现
前言: 前面分析了APP的现状以及业务组件化的一些探讨(Android业务组件化之现状分析与探讨),以及通信的桥梁Scheme的使用(Android业务组件化之URL Scheme使用),今天重点来聊 ...
- ASP.NET Core的路由[5]:内联路由约束的检验
当某个请求能够被成功路由的前提是它满足某个Route对象设置的路由规则,具体来说,当前请求的URL不仅需要满足路由模板体现的路径模式,请求还需要满足Route对象的所有约束.路由系统采用IRouteC ...
随机推荐
- 数据库——DQL(语句查询)
查询的基本结构: 概念: 查询(DQL)是数据库中最为常用和复杂的一种SQL结构,学会编写查询SQL是程序员必须具备的能力. 要从数据库中查询数据,我们要使用SQL的SELECT语句.标准SELECT ...
- maven基本用法
一.下载及安装 1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本 ...
- ubuntu修改设备名称
按住ctrl+alt+t打开终端 输入 sudo gedit /etc/hostname 出现一个打开的文件,显示的就是你的设备名字,也就是终端@的那个名字.将其修改成你想显示的名字,保存重启系统就可 ...
- MySQL For Windows Zip解压版安装
前言 Windows 下 MySQL 有msi和zip解压安装版两种,而zip版只需解压并做简单配置后就能使用,我个人比较喜欢这种方式. 注意我们这里说的MySQL是指MySQL服务器,有很多初学的同 ...
- vc 获取网络时间
方式1 : #include <WinSock2.h> #include <Windows.h> #pragma comment(lib, "WS2_32" ...
- 常用到的git,mvn,postgres,vim命令总结
mvn: 打包: mvn package 如果想在打包的时候跳过测试: mvn package -Dmaven.test.skip=true 使用的junit测试框架, 测试: mvn test 如果 ...
- Git 操作本地分支与远程分支
1 查看本地分支 git branch 2 查看远程分支 git branch -a 3 新建远程分支 git checkout -b developr git push origin develop ...
- vim 使用2 转载 为了打开方便
http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个 ...
- NFC学习 (1)
NFC Smart Poster: 放入NFC TAG的都是Smart Poster Advantage: 1.在展示动态内容方面有低功耗的优势: 2.容易扩展容量: 3.容易修改内容(修改后台或者 ...
- unity 3d孤岛求生案例代码解析
这是第一人称控制器脚本,如果把摄像机放在胶囊体后面感觉就是第三人称了啊. #pragma strict var speed : float = 6.0; var jumpspeed: float = ...