Laravel5.5添加新路由文件并制定规则
Laravel5.5里面有4个默认的路由文件,其中web.php是默认路由文件,如果需要添加其他路由文件,按照以下步骤进行。
此处以添加网站home前端路由举例,我已经先在/app/Http/Controller/文件夹下创建了一个Home文件夹,这个文件夹下主要放网站前端控制器,其他步骤如下:
1. 在项目routes目录下添加路由文件home.php;

2. 修改/app/providers/RouteServiceProvider.php
(1)添加路由方法
protected function mapHomeRoutes()
{
Route::prefix('home')
->middleware('home')
->namespace($this->namespace.'\Home')
->group(base_path('routes/home.php'));
} 如果不想添加路由前缀可以去掉
protected function mapHomeRoutes()
{
Route::namespace($this->namespace.'\Home')
->group(base_path('routes/home.php'));
}
(2)将添加的路由方法加入map方法中执行
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapHomeRoutes(); // 添加执行的路由方法
}
附完整的RouteServiceProvider.php代码:
<?php namespace App\Providers; use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers'; /**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
// parent::boot();
} /**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes(); $this->mapWebRoutes(); $this->mapHomeRoutes();
} /**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
} /**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
} protected function mapHomeRoutes()
{
Route::prefix('home')
->middleware('home')
->namespace($this->namespace.'\Home')
->group(base_path('routes/home.php'));
} }
3. 在/app/Http/Kernel.php中添加home类名及其路径
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
// 根据之前设置的路由规则名(home)对应添加home类名,并指向路由验证路径
'home' => \App\Http\Middleware\VerifyHome::class,
];
4. 在/app/Http/Middleware/文件夹下创建VerifyHome.php,并写入验证代码

代码如下:
<?php
namespace App\Http\Middleware;
use Closure; class VerifyHome
{
public function handle($request, Closure $next)
{
// if ("判断条件") {
return $next($request);
// } // 返回跳转到网站首页
// return redirect('/');
}
}
上面没有执行对home路由请求的验证,如果有需要自己加上。
5. 测试举例
(1)在home.php路由里添加两条路由规则,代码如下:
<?php
Route::get('index', 'IndexController@index');
(2)在/app/Http/Controller/Home/文件夹下创建IndexController.php,创建方式可以直接在文件夹下创建文件,也可以使用工具匠( php artisan make:controller Home\UserController ),控制器代码如下:
<?php namespace App\Http\Controllers\Home; use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request; class IndexController extends Controller
{
public function index()
{
echo "111222";
}
}
(3)访问测试:
有路由前缀

没有路由前缀

注意:访问默认路由web.php下的规则不用加web,访问其他路由文件需要加上在RouteServiceProvider.php中定义的路由名。


ok,可以按照你的模块架构分路由文件了!
参考链接:https://blog.csdn.net/createNo_1/article/details/81035154
Laravel5.5添加新路由文件并制定规则的更多相关文章
- gitignore文件中添加新过滤文件,但是此文件已经提交,如何解决?
gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决? 第一步,为避免冲突需要先同步下远程仓库 git pull 第二步,在本地项目目录下删除缓存 git rm -r --ca ...
- Source Insight添加新的文件类型
1.前言 Source Insight这个软件工具功能非常强大,很适合用来分析一些大型的code工程,例如Linux内核源码,本文将简单介绍如何在Source Insight工程中添加一种新的文件类型 ...
- git cmd 命令在已有的仓库重新添加新的文件夹
正确步骤: 1. git init //初始化仓库 git add .(文件name) //添加文件到本地仓库 git commit -m “first commit” //添加文件描述信息 git ...
- Linux下向SVN服务器添加新文件步骤
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
- codeblocks中cocos2dx项目添加新的.cpp和.h文件后编译运行的方法
新建了cocos2dx项目后(比如我这里建立的项目名为Test01),项目目录下有如下目录和文件: bin CMakeLists.txt MyGame.layout proj.win10 Classe ...
- laravel新增路由文件
除去原有路由文件,有时为方便路由管理,我们可以新增独立路由文件,如:针对管理后台的路由文件. 1.在routes文件夹下创建新路由文件admin.php 2.在app\Providers\RouteS ...
- SQL Server 分区表上建立ColumnStore Index 如何添加新分区方法与步骤
在生产环境中会遇到这样的场景,一个表随着时间的推移,越来越大,这个时候我们开始动手为这个表建立分区来改进查询性能. 但是表过大上百个G的时候,在数据仓库中,为了改进查询性能,我们可以添加在分区表的基础 ...
- Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交
今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点 ...
- Laravel 添加路由文件
在laravel 5.4中的routes文件夹里面默认有两个路由文件web.php和api.php. 新建路由文件 我们在routes文件夹下多创建一个admin.php文件作为管理后台的路由 修改R ...
随机推荐
- 【C/C++】知识点系统复习 (第一周)
2018/12/18 周二 1. C++内存布局分为几个区域,每个区域有什么特点? 主要可以分为 5 个区域, (1) 栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数 ...
- BZOJ 2238: Mst DFS序+KDtree
明明可以用二维数点来做啊,网上为什么都是树剖+线段树呢 ? code: #include <cstdio> #include <cstring> #include <al ...
- webpack 模块热替换的理解和使用
模块热替换(webpack文档上也叫 Hot Module Replacement 或 HMR)是 webpack 提供的最有用的功能之一.它允许在运行时更新各种模块,而无需进行完全刷新. 这句话其实 ...
- pywin3的简介
微软Windows的Python扩展提供了对Win32 API的访问.创建和使用COM对象的能力以及PythOnWin环境.Pywin32是一个Python库,为python提供访问Wind ...
- MariaDB 创建表
在本章中,我们将学习如何创建表. 在创建表之前,首先确定其名称,字段名称和字段定义. 以下是表创建的一般语法: CREATE TABLE table_name (column_name column_ ...
- [CSP-S模拟测试52]题解
A.平均数 看到第K小,又确定跟平衡树/主席树没有关系,可以把问题转化为有K-1个答案比它小再考虑二分. 二分平均值x,之后将原序列统一减去x.这时序列中区间和<0的区间个数就是原序列中平均值小 ...
- shell从字符串中提取子串(正则表达式)
通过试验,可以通过grep.sed两种方式实现. 假设需要提取libgcc-4.8.5-4.h5.x86_64.rpm中的版本号. grep echo "libgcc-4.8.5-4.h5. ...
- Source Insight下载及注册码
下载地址:http://www.sourceinsight.com/down35.html 注册码: SI3US-205035-36448 SI3US-466908-65897 SI3US-36893 ...
- 力扣算法——137SingleNumberII【M】
Given a non-empty array of integers, every element appears three times except for one, which appears ...
- Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)
原文英文地址为:Creating an OpenGL Window (Win32),翻译的chm中文格式文档下载地址为:OpenGL教程电子书(chm格式)中文版,源代码在官网上也可以下载到,每 ...