Laravel 框架路由原理与路由访问实例分析

本文实例讲述了Laravel 框架路由原理与路由访问。分享给大家供大家参考,具体如下:

一、简单了解路由的概念

在网络成为吃住一样的基本需求的今天;
断开了网络就像断开了与世界的联系的感觉;
对于现实中的路由我们应该是不陌生的;
最起码了解 wifi 吧;
你家里只有一根网线;
网线上接着 wifi 路由器;
多部手机和电脑就可以通过 wifi 上网了;
路由器起到了一个分发的作用;

二、Laravel 中的路由

我们访问项目的时候;
请求首先到达 public/index.php 入口文件;
可以把 index.php 类比成网线;
route/web.php 类比成路由器设备;
controller 控制器类比成多部手机设备;

有些框架的路由是自动绑定控制器的;
创建了控制器;路由也就自动有了;
laravel 的每一个路由是需要手动定义的;
很多童鞋会觉得这样很繁琐;
当年我也觉得麻烦;
还专门研究了自动绑定控制器的方法;
不过我并不会把方案写出来误导大家;
因为手动定义这种解耦的方式有它的好处;
以后重构项目路由的时候就简单方便多了;
定义一条路由也就秒秒钟的事;
不必纠结;

打开 web.php ;
我们可以看到这样的代码;

我们来解析下;
Route 是一个类;
访问类的静态方法是用 ::的形式;
那么get 就是Route类的一个静态方法;
get 静态方法可以传2个参数;
第一个参数现在是 / ;
我们知道 function 是用来定义函数的; 
第二个参数就是一个闭包函数;
在这个闭包函数中 return 返回的东西就是我们请求到的内容;
这3行代码告诉我们3件事;

第一;
Route::后面可以跟一个请求方法;
当前代码中就是 get 请求;
get 和 post 在请求中是最基本最常用的方法;
很容易就 Lenovo 到;
如果写成 post 的话;
那就表示是接受一个 post 的请求;

第二:
/表示的是首页;
在 url 中就是域名后面的那个斜杠;
http://bjyblog.test/
只不过后面如果没有其他内容的话一般是被省略了;
于是我们就很容易的模仿一下;

这样的写的话;
那 url 就应该是

http://127.0.0.1:8000/article ;

第三;
view 函数可以直接定位到 resources/views 目录;
它可以接受一个参数;
这个参数就是 resources/views 目录下的文件名去掉 blade.php后缀;
我们可以创建一个 resources/views/article.blade.php 文件;
里面写上 bjyblog article;
这样我们就可以定义请求了;

访问 http://127.0.0.1:8000/article

到这;
我们已经把路由和视图V关联起来了;
我们也创建了一个非常简单的路由了;

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Laravel中获取路由参数Route Parameters的五种方法示例

    前言 大家都知道Laravel 获取路由参数的方式有很多,并且有个小坑,现汇总如下,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 假设我们设置了一个路由参数: /** * 定义路由参数名称分别为: param1,param2 */ Route::get('/{param1}/{param2}', 'TestController@index'); 现在我们访问 http://test.dev/1/2 在 TestController 中: /** * 路由参数获取方法 * *

  • 修改Laravel5.3中的路由文件与路径

    前言 大家可能没有注意到, 在 Laravel 4 以及更老版本中, 路由逻辑是性能上的一个瓶颈--特别是对于有很多路由定义的应用而言. 一个只有几百条路由定义的 Laravel 站点, 框架光注册路由就需要半秒多的时间. 不过以后不用担心这个问题了, 因为 Laravel 5 引入了 路由缓存(route caching), 可以大大优化路由的性能(闭包方式定义的路由不能缓存, 所以该把所有的闭包路由定义都移到控制器中了). 1.回顾Laravel 5.2中路由的修改 在 Laravel 5.

  • Laravel框架路由配置总结、设置技巧大全

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码 代码如下: Route::get('/', function() { return 'Hello World'; }); 基本 POST 路由 复制代码 代码如下: Route::post('foo/bar', function() { return 'Hello World'; }); 注册一个路由以响应所有 HT

  • Laravel最佳分割路由文件(routes.php)的方式

    前言 Laravel 的路由功能很强大,默认都是定义在 routes.php 文件中,随着项目越来越大,我们需要的定义的路由越来越多,想象一下,如果几百上千个路由都定义在一个文件中,如何去维护?也许还有不同的人都在同一个文件定义路由,这就造成了冲突,因此我们需要分割 routes.php 文件. 下面介绍一种很优雅的方式. 在 app/Providers/RouteServiceProvider.php 的 map 方法中可以如下定义: public function map(Router $r

  • 跟我学Laravel之路由

    基本路由 应用中的大多数路都会定义在 app/routes.php 文件中.最简单的Laravel路由由URI和闭包回调函数组成. 基本 GET 路由 复制代码 代码如下: Route::get('/', function() {     return 'Hello World'; }); 基本 POST 路由 复制代码 代码如下: Route::post('foo/bar', function() {     return 'Hello World'; }); 注册一个可以响应任何HTTP动作

  • ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼

    前言 读过一篇关于Zend Framework2的技术文章<ZF2多级树形路由Route配置实例>,是介绍路由配置的.我觉得很有意思,这是的需求: /user对应用户列表页面 /user/:user_id对应用户的个人主页,比如 /user/AlloVince 就对应AlloVince用户的个人主页 /user/:user_id/blog/对应用户的博客列表页面,比如 /user/AlloVince/blog 就会列出AlloVince写过的Blog /user/:user_id/blog/:

  • Laravel框架路由和控制器的绑定操作方法

    本文实例讲述了Laravel框架路由和控制器的绑定操作方法.分享给大家供大家参考,具体如下: 路由和控制器的关系 路由文件地址在\app\Http\routes.php,我们来看两种不同的路由. Route::get('/', function () { return view('welcome'); }); Route::get('/hi', function () { return 'hello world'; }); 以上均为绑定匿名函数的路由,虽然可以返回视图,也可以返回字符串,但本质都

  • Laravel中重写资源路由自定义URL的实现方法

    前言 本文主要给大家介绍了关于Laravel中重写资源路由自定义URL的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 重写原因 近期在使用Laravel开发项目过程中,为了简化路由代码使用了Laravel的资源路由,Route::resource('photo', 'PhotoController'); 在默认情况下,Laravel生成的路由表如下: 动作 路径 Action 路由名称 GET /photo index photo.index GET /photo/c

  • laravel中命名路由的使用方法

    laravel提供了很多magic方法来,先来讲讲命名路由的使用,有两种方法非常便捷. 命名路由让你可以更方便的为特定路由生成 URL 或进行重定向.你可以使用 as 数组键指定名称到路由上 1.第一种:通过route路由中的as关键字来实现 Route::get('api/user',['as'='web.user'],'messageController@userInformation'); 2.第二种:通过Route的magic方法name来实现命名路由 Route::get('api/u

  • Laravel 之url参数,获取路由参数的例子

    如下所示: echo '<pre>'; var_dump( $request->url() ); // url echo '</pre>'; echo '<pre>'; var_dump( $request->route( 'email' ) ); //获取路由参数 echo '</pre>'; echo '<pre>'; var_dump( $request->method() ); // methed echo '</

  • Laravel路由研究之domain解决多域名问题的方法示例

    材料准备 一份干净的laravel 两份Nginx配置文件,主要配置如下: server_name *.amor_laravel_test_1.amor; root /var/www/amor_laravel_test/public; index index.php index.html index.htm; server_name *.amor_laravel_test.amor; root /var/www/amor_laravel_test/public; index index.php

  • Laravel 5框架学习之路由、控制器和视图简介

    查看 app/Http/routes.php 复制代码 代码如下: Route::get('/', 'WelcomeController@index'); @是一个界定符,前面是控制器,后面是动作,表示当用户请求url / 的时候,执行控制器 WelcomeController 中的 index 方法 复制代码 代码如下: app/http/controllers/welcomecontroller.php public function index() { return view('welco

随机推荐