前言

这里使用的是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路由的更多相关文章

  1. laravel route路由

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 代码如下: Route::g ...

  2. laravel route路由,视图和response和filter

    Laravel充分利用PHP 5.3的特性,使路由变得简单并富于表达性.这使得从构建API到完整的web应用都变得尽可能容易.路由的实现代码在 application/routes.php 文件. 和 ...

  3. laravel的路由分组,中间件,命名空间,子域名,路由前缀

    laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...

  4. laravel之路由

    laravel之路由设置 代码如下: 访问就是: 代码附上: <?php /*|--------------------------------------------------------- ...

  5. Laravel中路由怎么写(二)

    1.路由命名——给路由起个名字 1.1 基本使用 我们使用as关键字来为路由命名: Route::get('/hello/Laravel',['as'=>'academy',function() ...

  6. MVC3/4/5/6 布局页及Razor语法及Route路由配置

    一.目录结构 二.Razor语法 代码块:@{},如:@{Html.Raw(“”);} @if(){} @switch(){} @for(){} @foreach(){} @while(){} @do ...

  7. laravel 配置路由 api和web定义的路由的区别详解

    1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...

  8. Laravel之路由 Route::get/post/any、路由参数、过滤器、命名、子域名、前缀、与模型绑定、抛出 404 错误、控制器

    基本路由 应用中的大多数路都会定义在 app/routes.php 文件中.最简单的Laravel路由由URI和闭包回调函数组成. 基本 GET 路由 代码如下: Route::get('/', fu ...

  9. laravel Route::resource() 资源路由

    格式: Route::resource('/order', 'OrderController', ['as' => 'admin']); 框架自动创建路由及其对应控制器中的方法: 请求方式 路由 ...

随机推荐

  1. 关于docker容器是怎样建立新的namespace的。

    最近博客收到了一封交流的私信,感谢您的关注:现在就我理解的docker建立容器时namespace的建立问题做一个 个人的回答: 一,从原理角度来讲: docker创建container,说白了就是l ...

  2. angular 滚动

    AngularJs $anchorScroll.$controller.$document $anchorScroll 根据HTML5的规则,当调用这个函数时,它检查当前的url的hash值并且滚动到 ...

  3. Appium 截屏截图操作

    问题场景:有时当我们的脚本运行报错时,需要通过截屏来分析异常的来源.而selenium也提供了可以截图的方法TakesScreenshot.getScreenshotAs 举例:我们把截屏的图片存储在 ...

  4. JDK运行.Jar文件的控制台命令是什么

    cd进入jar文件所在目录,执行如下语句: java -jar jar文件名如:java -jar hello.jar

  5. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  6. android 查看MD5、sha1值命令

    cmd 进去keystore 文件所在目录 keytool -list -v -keystore xxx.keystore debug.keystore 默认目录:C:\Documents and S ...

  7. PLSQL碰到pls-00103的错误解决办法

    CREATE OR REPLACE PACKAGE PKG_SHOW_CUST_DETAILS AS PROCEDURE SHOW_CUST_DETAILS( myArg VARCHAR2);END ...

  8. php判断post数据是否存在(or 为空)的方法

    最近开发的php项目用到了表单 所以需要响应post请求 而在实际使用中 有些请求只需判断是否存在 百度了不少资料 发现都比较繁杂 然后想起了  count()函数 — 计算数组中的单元数目或对象中的 ...

  9. 11个提问频率最高的PHP面试题

    问题:请用最简单的语言告诉我PHP是什么? 回答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言. 问题:什么是MVC? 回答:MVC由Model(模 ...

  10. String、StringBuffer和StringBuilder的深入解析

    今天闲来无事,整理了下平时记录在印象笔记里的java开发知识点,整理到String,StringBuffer以及StringBuilder的区别时突然又产生了新的疑惑,这些区别是怎么产生的?温故为何能 ...