laravel前后台路由分离
在laravel中创建文件放置前台和后台控制器
找到app/providers/RouteServiceProvider.PHP文件
在内配置
例:
<?php namespace App\Providers; use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to the controller routes in your routes file.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
protected $frontendNamespace;
/**
* Define your route model bindings, pattern filters, etc.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function boot(Router $router)
{
//
$this->frontnamespace = 'App\Http\Controllers\Front';
parent::boot($router);
}
/**
* Define the routes for the application.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function map(Router $router)
{
//配置路由所在文件
// $backendUrl = config('route.backend_url');
// $frontendUrl = config('route.frontend_url');
// $apiUrl = config('route.api_url');
//
$router->group(['namespace' => $this->namespace], function ($router) {
require app_path('Http/routes.php');
});
//前台
$router->group(['namespace' => $this->frontnamespace], function ($router)
{
// 'domain' => $backendUrl,
require app_path('Http/routes_front.php');
});
}
}
或
<?php namespace App\Providers; use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to the controller routes in your routes file.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
protected $backendNamespace;
protected $frontendNamespace;
protected $apiNamespace;
protected $currentDomain; /**
* Define your route model bindings, pattern filters, etc.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function boot(Router $router)
{
//
$this->backendNamespace = 'App\Http\Controllers\Backend';
$this->frontendNamespace = 'App\Http\Controllers\Frontend';
$this->apiNamespace = 'App\Http\Controllers\API';
// $this->currentDomain = $this->app->request->server->get('HTTP_HOST');
$this->currentDomain = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ""; parent::boot($router);
} /**
* Define the routes for the application.
*
* @param \Illuminate\Routing\Router $router
* @return void
*/
public function map(Router $router)
{
// $router->group(['namespace' => $this->namespace], function ($router) {
// require app_path('Http/routes.php');
// }); $backendUrl = config('route.backend_url');
$frontendUrl = config('route.frontend_url');
$apiUrl = config('route.api_url'); switch ($this->currentDomain) {
case $apiUrl:
// API路由
$router->group([
'domain' => $apiUrl,
'namespace' => $this->apiNamespace],
function ($router) {
require app_path('Http/routes-api.php');
}
); break;
case $backendUrl:
// 后端路由
$router->group([
'domain' => $backendUrl,
'namespace' => $this->backendNamespace],
function ($router) {
require app_path('Http/routes-backend.php');
}
);
break;
default:
// 前端路由
$router->group([
'domain' => $frontendUrl,
'namespace' => $this->frontendNamespace],
function ($router) {
require app_path('Http/routes-frontend.php');
}
); break;
} }
}
完成后我们的路由也可以新建了 但要和上面的名称要一样
在路由中可以这样写(当然也可以自定义路由)例:
个人主页
Route::group(['middleware' => ['web']], function () {
Route::controller('/test', 'TestController');
// 重置
Route::get('user/password/reset/{token?}', [
'as' => 'user.password.reset@token',
'uses' => 'User\PasswordController@getReset'
]);
]);
laravel前后台路由分离的更多相关文章
- [PHP] - Laravel - Route路由
前言 这里使用的是Laravel 5 PHP Laravel的路由比较强悍,但也正因如此,不统一而容易凌乱.比如在路由中可以直接写方法操作(破坏封装啊) 以下是个人学习的例子,不供参考 路由中的直接方 ...
- 前后台彻底分离的核心文件bridge.js.
具体代码可以在我的git上下载:https://github.com/guoyansi/bridge 这里的后台使用java写的,如果不了解java的童鞋可以忽略下面这样图片. bridge.js / ...
- laravel的路由分组,中间件,命名空间,子域名,路由前缀
laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...
- laravel之路由
laravel之路由设置 代码如下: 访问就是: 代码附上: <?php /*|--------------------------------------------------------- ...
- Laravel中路由怎么写(二)
1.路由命名——给路由起个名字 1.1 基本使用 我们使用as关键字来为路由命名: Route::get('/hello/Laravel',['as'=>'academy',function() ...
- JFinal Web开发学习(三)前后台路由设计
效果图: 一.写控制器 1.在controller包中新建AdminController后台控制器,继承Controller,实现一个index方法,作为的处理方法. /admin 后面,这个控制器中 ...
- express 的路由分离
在做大型项目是一般不会把路由写入server.js里,所以就有了路由分离 1.在项目目录下创建router文件夹 user.js var express = require("express ...
- Yii2 基础模板前后台登录分离
1.用GII 生成一个模块(modules)名字为 admin 2.在./config/web.php 中加入如下配置 'modules' => [ 'admin' => [ 'class ...
- laravel 配置路由 api和web定义的路由的区别详解
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
随机推荐
- FFmpeg 学习(一):FFmpeg 简介
一.FFmpeg 介绍 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先 ...
- Python面向对象6:抽象类和自定义类
抽象类- 抽象方法: 没有具体实现内容的方法成为抽象方法- 抽象方法的主要意义是规范了子类的行为和接口- 抽象类的使用需要借助abc模块 import abc - 抽象类:包含抽象方法的类叫抽象类,通 ...
- Im4java 操作 ImageMagick 处理图片
背景 之前用的是JMagick,各种限制各种坑,直到使用了Im4java,真是相当的好用啊. 项目描述 ImageMagic的安装可参考:图片处理软件 ImageMagick 的安装和使用 Im4ja ...
- 全栈开发工程师微信小程序-上(下)
全栈开发工程师微信小程序-上(下) icon 图标 success, success_no_circle, info, warn, waiting, cancel, download, search, ...
- Python学习笔记【第六篇】:迭代器、生成器、高阶函数、装饰器
迭代器 迭代器是访问集合元素的一种方式,迭代器从对象的第一个元素开始访问,知道所有元素被访问完成.迭代器只能往前访问,不能通过索引访问. 类型内部使用__iter__()方法转为迭代器,使用__nex ...
- lvs、nginx、HAProxy、keepalive工作原理
1. lvs.nginx.HAProxy.keepalive工作原理 1.1. 前言 遇到了负载均衡和高可用选型问题,我觉的有必要好好理解下lvs,nginx,haproxy和keepalive的区别 ...
- rabbitmq系统学习(一)
各种mq activemq,kafka使用zookeeper做管理 rocketmq自己实现nameserver broke管理 AMQP核心概念 高级消息队列协议 publisher applica ...
- Redis Linux 安装运行实战全记录
下载Redis 去Redis官网下载最新的Linux包,Redis官方没有Windows版的下载. https://redis.io/ 下载后把包上传到Linux服务器. 安装Redis 1.解压Re ...
- maven的标准pom.xml详解
maven是构建和管理理项目的利器,pom.xml 是其核心.一个标准的pom.xml该怎么写?其中的标签又有什么意义?话不多说,请看代码: <?xml version="1.0&qu ...
- bootbox.js官方文档
简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...