laravel中必须先配置路由,才能使用。不像tp中不配置也能使用,因为tp可以通过pathinfo进行自动解析。

一、简单的路由设置

我们一般在routes/web.php文件中配置网页端路由。

  1. //参数一,表示uri路径
  2. //参数二,闭包函数,处理响应
  3. Route::get('/test', function () {
  4. return '测试';
  5. });

  

二、路由方法,处理特定http请求方式

  1. Route::get('/', function () {});
  2. Route::post('/', function () {});
  3. Route::delete('/', function () {});

也可以通过Route::any()捕获任意请求方式

  1. Route::any('/', function () {});

也可以通过Route::match()处理指定的请求方式

  1. Route::match(['get', 'post'], '/', function () {});

  

三、将路由映射到控制器方法

  1. Route::get('/hello', 'HelloController@index');

将/hello的处理映射到app/Http/Controllers/HelloController.php的index方法。

如果我们在Controllers目录下创建了多层目录,可以通过(目录\...\控制器@方法)的方式:

  1. Route::get('/hello', 'Hello\HelloController@index');

  

四、路由参数

有些时候需要路由上传递参数,只需在路由路径中标识即可。

  1. Route::get('/list/{page}', function ($page) {
  2. return "当前页数{$page}";
  3. });

不过上面的page参数是必传的,如果没传将会报错找不到。这时候可以在标识后面加个?,表示可选,并给函数参数一个默认值。

  1. Route::get('/list/{page?}', function ($page = 1) {
  2. return "当前页数{$page}";
  3. });

我们也可以为路由参数设置正则规则,保证参数的正确性

  1. Route::get('/search/{key?}/{page?}', function ($key = '', $page = 1) {
  2. return "搜索 {$key} 页数 {$page}";
  3. })->where(['key' => '[A-Za-z]+', 'page' => '[0-9]+']);

获取路由参数

  1. Route::get('/search/{key?}/{page?}', function (Request $req) {
  2. //获取单个路由参数
  3. var_dump($req::route('key'));
  4. //获取所有路由参数
  5. var_dump($req::route()->parameters());
  6. });

通过Request::all()获取普通参数,类似?a=a&b=b&c=c

  1. Route::get('/search/{key?}/{page?}', function (Request $req, $key = '', $page = 1) {
  2. var_dump($key);
  3. var_dump($page);
  4. var_dump($req::all());
  5. });

  

五、路由命名

我们可以给路由设置一个名字,方便在视图中使用

  1. Route::get('/list/{page?}', function ($page = 1) {
  2. return view('list', ['page' => $page]);
  3. })->name('list.page');

我们在resources/views/list.blade.php视图中,通过 route() 方法来显示该路由地址

  1. {{ route('list.page', ['page' => $page]) }}

  

laravel的路由设置,路由参数和路由命名(三)的更多相关文章

  1. Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致

    Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致,如果参数不一致,传过去为null

  2. MVC的路由设置【转】

    转,MVC的路由设置. 后端获取路由里面action的参数,函数需要设置相同的参数名称才行. routes.MapRoute( "Default", "{controll ...

  3. vue设置路由跳转参数,以及接收参数

    最近做Vue项目,遇到了一个路由跳转问题:首页要跳转到项目页指定的Tab选项卡项,一开始总是跳到默认项.解决方法如下: 在跳转链接处设置了路由跳转参数,如下: <router-link  :to ...

  4. laravel 增删改查 数据库设置 路由设置

    laravel 框架的路由设置: url: http://www.shanzezhao.com/laraverl/my_laravel/public/index.php/indexs laravel ...

  5. xp多网卡静态路由设置方法

    xp多网卡静态路由设置方法 一.多个IP都在同一网段或VALN.这类情况没什么好说的,在各块网卡的本地连接属性里设置好IP地址.子网掩码和默认网关即可. 二.多个IP属于不同网段或VLAN.这时如果按 ...

  6. express中路由设置的坑-----1

    router.get('/commodities/sortable', utils.logged, function (req, res) { Commodity.find({force_top:tr ...

  7. CI 路由设置

    $route['news/show/(:num)']='news/show/$1';   前边是匹配 网址   后边是  指定控制器 在application/config/文件夹下有routes.p ...

  8. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  9. react一看就会的简单路由设置

    不管是vue还是react  这种单页面的框架一定都少不了路由 下面给大家讲讲在实际项目中react的路由设置 第一步: 在src目录下新建一个目录route  在该目录下新建一个index.js用于 ...

随机推荐

  1. MySQL计算年龄

    SELECT TIMESTAMPDIFF(YEAR, birthday, now()) FROM person2;

  2. jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等

    简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...

  3. kibana Dev tool 查询结果与预期不符

      问题描述 项目使用Elasticsearch作为搜索引擎,Kibana用来进行可视化操作,Kibana中有Dev tool可供用户使用REST ful API 访问Elasticsearch,在一 ...

  4. [论文阅读]MobileNetV2: Inverted Residuals and Linear Bottlenecks

    0.      本文贡献点 本文的主要贡献点是一个构造了一个结构,称为the inverted residual with linear bottleneck.该结构与传统的residual bloc ...

  5. js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  6. run in thread

    def run_in_thread(runnable, is_daemon=True): server_thread = Thread(target=runnable) server_thread.s ...

  7. 75.纯 CSS 创作一支摇曳着烛光的蜡烛

    原文地址:https://segmentfault.com/a/1190000015580809 学习后效果地址:https://scrimba.com/c/c8PQ3PTB 感想:CSS 真强大! ...

  8. orcal - 增删改

    数据跟新 增删改 将emp复制到myemp CREATE TABLE myemp AS SELECT * FROM emp; 新增: INSERT INTO 表名称[(列名称1,列名称2,.....) ...

  9. Java Design Patterr

    Factory: ●简介: 工厂模式同单例模式一样,也是Java中最常用的设计模式之一,属于创建型模式,它提供了一种创建对象的最佳方式.能够根据要求调用者提供的信息为接口指定不同的实现类,降低耦合. ...

  10. python大法好——Python 正则表达式

    Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. r ...