[PHP] - Laravel - Route路由
前言
这里使用的是Laravel 5
PHP Laravel的路由比较强悍,但也正因如此,不统一而容易凌乱。比如在路由中可以直接写方法操作(破坏封装啊)
以下是个人学习的例子,不供参考
路由中的直接方法调用和路由地址的使用规则例子
/**
* 定义一个/hi地址,返回hi的view
*/
Route::get('/hi', function()
{
return View::make("hi");
}); /**
* 定义一个/hello地址,带参数,默认参考值为Robin
* 地址访问如:/hello/myname
*/
Route::get("/hello/{name?}", function($name = "Robin"){
return "Hello " . $name;
}); /**
* 定义一个地址:/test/2222
* 使用正则匹配参数id
*/
Route::get("/test1/{id}", function($id) {
return "ID value = " . $id;
})->where("id", "\d+"); /**
* 定义一个地址:/test2/123/robin
* 使用正则匹配多个参数
*/
Route::get("/test2/{id}/{name}", function($id, $name){
return "ID = " . $id . ", Name = " . $name;
})->where(["id"=>"\d+", "name"=>"[a-zA-Z]+"]); /**
* 定义一个/as/my地址,给此路由加一个别名为mm
*/
Route::get("/as/my", ["as" => "mm", function(){
// 输入当前路由的名称,如果路由没有给指定别名,返回空值
return Route::currentRouteName();
}]); //------------------------------------------------------------------
// 测试POST提交
//------------------------------------------------------------------
Route::get("/test", function(){
return View::make("test");
}); Route::post("/test3", function(){
// 取得POST的test文本框输入值
//return $_POST["test"];
// 取得所有POST的内容
//return Input::all();
// 取得指定文本框的输入值
return Input::get("test");
}); //------------------------------------------------------------------
// 测试预定义PID为整型
//------------------------------------------------------------------
$router->pattern("pid", "\d+");
Route::get("/test4/{pid}", function($pid) {
return "Pattern ID = " . $pid;
});
当然了,它还有一些什么before、after之些的东西,这里就不写了。
路由使用Controller例子
/**
* 使用Conntroller
*/
Route::get("/test5", ["as" => "test5", "uses" => "TestController@index"]); /**
* 使用Controller重定向
*/
Route:get("/test6", ["as" => "test6", "uses" => "TestController@test6"]); /**
* Route的重定向
*/
Route::get("test7",function(){
return Redirect::to("test5");
}); /**
* 使用Controller取得当前Route的名称,名称为:mytest8
*/
Route::get("test8", ["as" => "mytest8", "uses" => "TestController@test8"]); /**
* 使用Controller
* Controller的方法前需要使用get开头
*/
Route::controller("/my/test", "my\MyTestController"); //------------------------------------------------------------------
// Controller Group
// 加入前缀my2,意思是在里头的所有路由地址都以my2开头
// 例如:http://localhost/my/add
//------------------------------------------------------------------
Route::group(["prefix" => "my2"], function() {
Route::controller("/", "my\MyTest2Controller");
});
[PHP] - Laravel - Route路由的更多相关文章
- laravel route路由
基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 代码如下: Route::g ...
- laravel route路由,视图和response和filter
Laravel充分利用PHP 5.3的特性,使路由变得简单并富于表达性.这使得从构建API到完整的web应用都变得尽可能容易.路由的实现代码在 application/routes.php 文件. 和 ...
- laravel的路由分组,中间件,命名空间,子域名,路由前缀
laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...
- laravel之路由
laravel之路由设置 代码如下: 访问就是: 代码附上: <?php /*|--------------------------------------------------------- ...
- Laravel中路由怎么写(二)
1.路由命名——给路由起个名字 1.1 基本使用 我们使用as关键字来为路由命名: Route::get('/hello/Laravel',['as'=>'academy',function() ...
- MVC3/4/5/6 布局页及Razor语法及Route路由配置
一.目录结构 二.Razor语法 代码块:@{},如:@{Html.Raw(“”);} @if(){} @switch(){} @for(){} @foreach(){} @while(){} @do ...
- laravel 配置路由 api和web定义的路由的区别详解
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
- Laravel之路由 Route::get/post/any、路由参数、过滤器、命名、子域名、前缀、与模型绑定、抛出 404 错误、控制器
基本路由 应用中的大多数路都会定义在 app/routes.php 文件中.最简单的Laravel路由由URI和闭包回调函数组成. 基本 GET 路由 代码如下: Route::get('/', fu ...
- laravel Route::resource() 资源路由
格式: Route::resource('/order', 'OrderController', ['as' => 'admin']); 框架自动创建路由及其对应控制器中的方法: 请求方式 路由 ...
随机推荐
- ubuntu 安装Django MySQL
1.安装步骤 我到公司的第一件事就是安装ubuntu系统,虽然我以前没有接触过ubuntu系统不过在网上找了一下资料感觉和安装其它系统也差不多(注:我是安装带图形界面的那个版本),还是比较轻松的搞定了 ...
- WPF(WP7、WP8)实现圆形图片
在WP平台上制作图片圆角其实特别简单, 用Image控件的Clip属性即可(RadiusX-Y设置为图片尺寸的一半) <Image Source="{Binding photo}&qu ...
- Maven学习-目录结构
在前一篇文章中,我们介绍了什么是Maven,以及如何用Maven来构建我们的项目.不了解Maven的童鞋,可以看这里Maven学习-入门.在这篇文章中,我们将学习Maven的项目的目录结构相关的内容. ...
- 用 pytube 爬取 youtube 视频
这个方法比直接用浏览器插件逼格高点 1. 简介 需要用到 pytube 这个第三方库:https://github.com/nficano/pytube 这里只是把这个页面捡重要部分翻译了一下. py ...
- 微信开发03----------XML解析与封装
3.1 解析微信发来的请求 微信服务器发来的请求消息都被封装在request对象中,可以从request对象中将请求参数取出来.通常是用request的getParament()方法获取请求中的参数 ...
- HTC One M7简易刷Recovery教程
HTC One M7作为当下HTC旗下的旗舰热门机,用户们对于刷机的需求都比较强烈,对于刷ROM的前提就是要刷入Recovery,当然作为安卓智能手机HTC one而言也不例外,最近有些用 ...
- HSV与RGB颜色空间的转换
一.本质上,H的取值范围:0~360 S的取值范围:0~1 V的取值范围:0~255 但是,当图像为32F型的时候,各 ...
- ArrayList集合 、特殊集合
一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...
- 只需三步 快速完善网站Sitemap
越来越多的SEOer把优化的重点放在了站内优化上,细心的朋友应该查看一些前辈的robots.txt的时候不难发现,他们的robots中都加 入了一句Sitemap: http://www.dewang ...
- iptables的扩展匹配
iptables的匹配条件 一.通用匹配:-s.-d.-p.-i.-o 二.扩展匹配 1.隐含扩展:使用-p{tcp|udp|icmp}指定某特定协议后,自动能够对协议进行扩展 -p tcp --dp ...