Laravel Router.php,laravel的路由(router)图文详解

本文深入解析Laravel路由机制,涵盖基础get/post请求、控制器调用、API路由、重定向、视图渲染、多动词路由及路由前缀设置。适合学习者快速上手和进阶理解。

这篇文章主要介绍了关于laravel的路由(router)图文详解,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

laravel的路由(router)图文详解

laravel基础的路由:

在/routes/web.php里面, 写一个Route::get('/hello',function(){

return 'hello , can you hear me ?';

});

然后就能在浏览器里

bfc6d97063d9e944d7c7d48ee4e2a12a.png

postman也可以直接看到

389248140cf33189b15c58135c6a9ddb.png

原文:

38a0edf7dbab9d788ad171ce37c2ef54.png

我们先试一下调用控制器:Route::get('/menu','Menu\MenuIndexController@index');

这就是直接get请求发送about, 调用StaticPagesController控制器的about方法

96034aeb3c7c7a74a3d5b008a2eb4cd1.png<?php

namespace App\Http\Controllers\Menu;//修改命名空间

use App\Http\Controllers\Controller;//引用基础controller

use Illuminate\Http\Request;

class MenuIndexController extends Controller

{

//

public function index(){

return view('menu/index');

}

}

跳转到view:

aee1ca4c439161df20a3585c4eae2025.png@extends('layouts.default')

@section('content')

菜单页

@stop

@section('title','菜单页')

浏览器效果:

af87ef2b6e0adf49cadef9cf6e1af726.png

定义在routes/api.php文件中的路由通过app/Providers/RoutesServiceProvider的处理被嵌套在一个路由中间件组中, 在这个路由中间件组中, 所有路由会被自动添加/api前缀, 所以你不需要再到路由文件中为每个路由手动添加, 你可以通过编辑RouteServiceProvider类来修改路由前缀以及其他的路由中间件组选项;

0764b6e7d3ba0b2ddfb30cd838c93f0c.png

这一坨就别去改动了, 底层的东西改了不知道会发生什么神奇的事情;

有时候还需要注册一个路由响应多种 HTTP 请求动作 —— 这可以通过 match 方法来实现。或者,可以使用 any 方法注册一个路由来响应所有 HTTP 请求动作:Route::match(['get','post'],'returnReturn','Menu\MenuIndexController@returnReturn');

Route::any('returnAny','Menu\MenuIndexController@returnAny');

路由重定向:

如果需要定义一个重定向到其他URI路由, 可以使用Route::redirectRoute::redirect('motherfucker','menu',301);

浏览器输入motherfucker就会蹦到menu;

301是一个状态码,默认301,原文:

7b5e030005b3aafd62123e8316da82a7.png

当然还有需要直接跳转到视图层(view), 然后其余数据(maybe whole data)都由api提供获取, 那么直接跳到视图的路由是这么玩的:

Route::view('staticView','static_pages/staticView');

注意, 这里的static_pages/staticView是用的正斜杠, 反斜杠会报错说can not found static_pages\staticView;

静态页面位于:

402b274665060a443579d2dd8d55f6d3.png

浏览器直接访问效果:

73ce53fd2b63d3deb9e8329630bcc905.png

当然还有另外一种骚操作, 就是Route::view传递第三个参数, 用于视图中的数据渲染Route::view('staticViewData','static_pages/staticViewData',['name'=>'jack','like'=>'money']);

传递过去的数组自然就是['name'=>'jack','like'=>'money'],

页面上用法:@extends('layouts.default')

@section('content')

this is static view data

{{$name}} likes {{$like}}

@stop()

@section('title','static view data')

然后浏览器效果:

9708faf8e6b1a082c399cb848653a478.png

当然了你要皮, 那自然是不可以的:Route::view('staticViewData','static_pages/staticViewData',['name'=>'jack','like'=>'money','jump'=>'']);

源代码会把标签给当作普通文字解析, 前后加上< &rt;

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关课程推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值