[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']); 框架自动创建路由及其对应控制器中的方法: 请求方式 路由 ...
随机推荐
- c++继承,多态,重载的作用
继承:用户通过继承,可以从一个类派生出多个子类,减少了重新定义类的次数,并且在不影响子类的相应功能的情况下,保护了基类中的数据安全性.用户还可以在子类中,使用与基类相同的行为实现不同的功能,因此,使用 ...
- Eclipse/JavaWeb (一)三大框架之struts框架 持续更新中...
最近主要把javaweb的三大框架过一遍. (一)发展历史 传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序分为几层,有 ...
- JS小总结
今天看了一下js的部分总结了一下 函数的定义首先是命名函数function funcName函数还有匿名函数 var funcName = function()普通函数和匿名函数在调用上基本没有什么区 ...
- 炫酷的Linux终端命令大全-1
1. 命令行日常快捷键. CTRL + U ------------------------------- 剪切光标前的内容 CTRL + K ----- ...
- Spring的依赖注入怎么理解
先看一段代码假设你编写了两个类,一个是人(Person),一个是手机(Mobile). 人有时候需要用手机打电话,需要用到手机的dialUp方法. 传统的写法是这样: Java code public ...
- "****" is not translated in zh, zh_CN.的解决方法
最近在开发一个app,要用到静默安装等一些小技术,但是引发了问题如下: 在Android SDK Tool r19之后, Export的时候遇到xxx is not translated in yyy ...
- iPhone 6 屏幕揭秘
http://www.cocoachina.com/design/20141218/10680.html 一根线的渲染 为了说明多种设备的不同像素渲染情况,我们比较了一个一像素宽的线是怎样渲染的: 最 ...
- rtmp转m3u8
不是所有的地址改成这样都能播 需要自己测试 先说一下rtmp的其中rtmp的常见的差不多是3种 1.一种是wowza服务器的 比如这个地址rtmp://116.55.245.135:8096/live ...
- js jquery实时计算输入字符
在项目中需要倒还可以输入多少字符
- 最新WingIDE注册破解方法 【转】
WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 注:本教程在python ...