精华内容
下载资源
问答
  • 首先需要新建一个自定义的路由文件,可以是项目里任何一个位置,这里我就新建了一个js.api.php文件,在使用注册路由前,先引入use Illuminate\Support\Facades\Route;,在laravel中,所有路由得使用Route类注册才能生效. ...

    laravel本身自带4个路由,如果你自定义一个路由文件,直接写肯定是不行的,因为laravel路由需要在/App/Providers/RouteServiceProvider.phpmap方法中注册,只需要两步就可以自定义路由

    首先需要新建一个自定义的路由文件,可以是项目里任何一个位置,这里我就新建了一个js.api.php文件,在使用注册路由前,先引入use Illuminate\Support\Facades\Route;,在laravel中,所有路由得使用Route类注册才能生效.
    接下来打开/App/Providers/RouteServiceProvider.php,如下列代码所示

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
    use Illuminate\Support\Facades\Route;
    
    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';
    
        /**
         * The path to the "home" route for your application.
         *
         * @var string
         */
        public const HOME = '/home';
    
        /**
         * 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->mapMyApiRoutes();
        }
    
        /**
         * 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'));
        }
    
        /**
         * Custom application API routing.
         *
         * These routes are typically stateless.
         *
         * @return void
         */
        protected function mapMyApiRoutes()
        {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/js.api.php'));
        }
    }
    

    自定义一个在RouteServiceProvider.php中自定义一个路由方法,规范如下:

    	/**
         * Custom application API routing.
         *
         * These routes are typically stateless.
         *
         * @return void
         */
        protected function mapMyApiRoutes()
        {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/js.api.php'));
        }
    

    因为我注册的是api的路由,所以前缀prefix和中间件middleware都是api,命名空间namespace中参数可以是自己控制器的命名空间,分组group参数就是你自定义路由文件的位置,确认没问题后,最后在RouteServiceProvider.php中map方法中调用你刚刚新建的方法即可,如下列代码所示

    	/**
         * Define the routes for the application.
         *
         * @return void
         */
        public function map()
        {
            $this->mapMyApiRoutes();
        }
    

    这样注册后,就可以愉快得在自己新建的路由文件里注册路由了,最后,可以使用命令行中(命令行的打开的文件位置一定要是项目根目录)使用php ./artisan route:list,查看注册的路由

    展开全文
  • 今天小编就为大家分享一篇laravel 配置路由 api和web定义的路由的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • laravel万能路由 自动路由 动态路由 有了万能路由就不用一条一条添加路由了,很方便。如果你要用资源控制器做Restful接口,那还是要写资源路由的,注意,资源路由一定要写在最上面。 Route::resource('photos', '...

    laravel万能路由 自动路由 动态路由

    有了万能路由就不用一条一条添加路由了,很方便。如果你要用资源控制器做Restful接口,那还是要写资源路由的,注意,资源路由一定要写在最上面。

    Route::resource('photos', 'PhotoController');//资源路由要写在上面。
    
    //万能路由
    
    Route::group(['middleware'=>['web']],function (){
    
        Route::any("/{module}/{controller}/{action}",function ($module,$class,$action){
            $class = "App\\Http\\Controllers\\$module\\".ucfirst(strtolower($class)).'Controller';
            if(class_exists($class))
            {
                $ctrl = \App::make($class);
                    return \App::call([$ctrl, $action]);
            }
            return abort(404);
     
        })->where([ 'module'=>'[0-9a-zA-Z]+','class' => '[0-9a-zA-Z]+', 'action' => '[0-9a-zA-Z]+']);
    
    });

    在你的控制器方法中获取参数要用(Request $request)

    public function index(Request $request)
        {
            $name = $request->input('name');
            echo $name;
        }

    友好url:如果你想拥有http://www.laravel65.com/Haha/photo/index/id/22/tag/php  这样的友好url

    请使用以下

    Route::resource('photos', 'PhotoController');//资源路由要写在上面。
    Route::get('/', function () {
        return view('welcome');
    });
    //万能路由
    Route::group(['middleware'=>['web']],function (){
        Route::any("/{search}",function ($search){
            $urls=explode('/',$search);
            $module=$urls[0] ?? 'Index';
            $className=$urls[1] ?? 'Index';
            $action=$urls[2] ?? 'Index';
            $class ="App\\Http\\Controllers\\$module\\".ucfirst(strtolower($className)).'Controller';
             
                $ctrl = \App::make($class);
                    return \App::call([$ctrl, $action],[$search]);
            // }
            return abort(404);
     
        })->where('search', '.*');
    });

    同时在你控制器的方法中使用$search参数接收参数

    public function index(Request $request,$search)
        {
            var_dump($search);
            $name = $request->input('id');
            echo 'index' .$name;
        }

     

    原创文章,转载请注明:来自lenix的博客,地址https://blog.p2hp.com/archives/7504

    展开全文
  • Laravel新建路由文件

    2020-07-11 10:30:09
    laravel路由文件在根目录下面的routes文件夹下 默认的为web.php 以及api.php 比如我们要建立一个admin.php文件 首先我们要在app/Providers/RouteServiceProvider 服务提供者中注册路由文件 添加mapAdminRoutes...

    直接新建文件
    laravel的路由文件在根目录下面的routes文件夹下
    默认的为web.php 以及api.php
    比如我们要建立一个admin.php文件

    • 首先我们要在app/Providers/RouteServiceProvider 服务提供者中注册该路由文件
    • 添加mapAdminRoutes方法并且修改map方法,具体如下所示:
    public function map()
    {
        $this->mapApiRoutes();
    
        $this->mapWebRoutes();
    
        //my website admin
        $this->mapAdminRoutes();
    }
    
    protected function mapAdminRoutes(){
        Route::middleware('web')
        ->namespace($this->namespace)
        ->group(base_path('routes/admin.php'));
    }

    就可以在admin.php里面注册中间件了

    protected function mapApiRoutes()
    {
          //可以设置前缀(加在访问路由前面的)
          Route::prefix('api')
          ->middleware('api')
          ->namespace($this->namespace)
          ->group(base_path('routes/api.php'));
    }


     

    展开全文
  • Laravel创建路由

    千次阅读 2018-07-30 13:33:56
    我这里使用的Laravel版本是5.6,路由位置在routes/web.php中,所以我们在这个文件中添加我们想要添加的路由。 1.基础路由 //get请求,结果如下图 Route::get('basic1',function (){ return 'Hello World'; }); ...

    我这里使用的Laravel版本是5.6,路由位置在routes/web.php中,所以我们在这个文件中添加我们想要添加的路由。
    1.基础路由

    //get请求,结果如下图
    Route::get('basic1',function (){
        return 'Hello World';
    });
    //post请求,这里不展示结果图
    Route::post('basic2',function (){
        return 'Post';
    });

    get请求
    2.多请求路由

    //自定义多请求,自定义的请求放在下面的数组中
    Route::match(['get','post'],'multy',function(){
        return "多请求路由";
    });
    //响应所有请求
    Route::any('multy2',function (){
        return '响应所有请求';
    });

    自定义多请求
    自定义多请求
    响应所有请求
    响应所有请求
    3.路由参数

    //必选参数
    Route::get('user/{id}',function ($id){
        return '用户的id是'.$id;
    });

    有参数
    这里写图片描述
    没参数
    这里写图片描述

    //可选参数,无参数默认值为Doubly
    Route::get('name/{name?}',function ($name = 'Doubly'){
        return '用户名为'.$name;
    });

    参数为kit
    这里写图片描述
    没有参数
    这里写图片描述

    //字段验证,名字必须为字母
    Route::get('name/{name?}',function ($name = 'Doubly'){
        return '用户名为'.$name;
    })->where('name','[A-Za-z]+');

    参数不为字母时
    这里写图片描述

    //多个参数,并且带有参数验证
    Route::get('user/{id}/{name?}',function ($id,$name = 'Doubly'){
        return "ID为{$id}的用户名为{$name}";
    })->where(['id'=>'\d+','name'=>'[A-Za-z]+']);

    这里写图片描述
    4.路由别名

    //路由别名
    Route::get('user/center',['as'=>'center',function(){
        return '路由别名:'.route('center');
    }]);

    这里写图片描述

    使用别名的好处是什么呢?
    当我们需要修改路由的时候,比如将user/center改成user/member-center的时候,我们代码中使用route('cneter')生成的URL是不需要修改的。

    6.路由群组

    //路由群组
    Route::group(['prefix'=>'member'],function (){
        Route::get('basic1',function (){
            return '路由群组中的basic1';
        });
    
        Route::get('basic2',function (){
            return '路由群组中的basic2';
        });
    });

    通过laravel.test/member/basic2访问
    这里写图片描述
    7.路由中输出视图

    //路由中输出视图
    Route::get('view',function(){
        return view('welcome');
    });

    welcome.blade.php模板内容

    <h1>这是路由中输出的视图</h1>

    这里写图片描述

    展开全文
  • laravel8路由(一)

    2021-03-09 23:32:09
    路由 文件位置 带参数和不带参数 Route::get('/', function () { return view('welcome'); }); Route::get('/test',function(){ return 'f'; }); Route::match(['post','get'],'match',function (){ echo '...
  • Laravel自定义路由文件

    千次阅读 2019-04-28 20:51:26
    在这个文件中,可以看到web.php,和api.php的路由都是在这个地方定义的。 2.我们要给后台新建一个admin.php的路由文件。先在RouteServiceProvider.php写上我们的路由方法。 /** * Define the "api" routes for the ...
  • lann-route版本说明v1.0基础版本(通过注解(doc注释)自动解析路由文件)v1.1添加php artisan calject:route:file 命令根据注解(doc注释)生成路由文件Description:根据注解路由生成路由文件Usage:calject:route:file ...
  • laravel路由操作方法

    千次阅读 2019-05-16 16:42:18
    简单路由操作: 1、 利用匿名函数直接...上述路由会返回一个具有hello,world的页面(Laravel 会通过内置的响应栈和中间件对返回内容进行处理。) 2、 路由参数以及限定(where) Route::get('page/{name}', fun...
  • 本期为大家说一说用laravel注册路由的那些必知必会的方法。 代码时间 遵循编程惯例,首先实现一个 hello world 的示例。在路由文件 routes/web.php 内注册一个get请求的路径: // routes/web.php Route::get('/', ...
  • 使用PHP 8属性在Laravel应用程序中注册路由此包提供了注释以自动注册路由。 这是一个简单的示例:use Spatie \ RouteAttributes \ Attributes \ Get; class MyController {#[Get('my-route')]公共函数myMethod...
  • 第一步: 在和web.php同级新建一个自己的路由比如叫myweb.php第二步: 在app\Providers\RouteServiceProvider.php中添加如下代码: /** * 自己注册路由文件 */ protected function mapMywebRoutes() { ...
  • Laravel摘记之路由、控制器、视图

    千次阅读 2018-07-25 21:33:54
    Laravel路由 什么是路由 将用户的请求按照事先规划的方案提交给指定的控制器和方法来进行处理。 Laravel框架中用户需要访问的全部路由都事先设置好,用户只能访问声明的一些路由,即没有声明的路由是不能被访问的...
  • laravel资源路由

    2020-05-19 08:33:56
    资源路由只是系统自动帮你注册了一些资源的restful路由规则 Route::resource('goods', 'GoodsController'); 则会创建如下路由 动作 URI 行为 路由名称 GET /goods index goods.index GET /goods/create ...
  • laravel路由解析全解

    千次阅读 2018-12-27 21:04:08
    今天来详细的跟大家分享laravel框架中的路由到底是如何解析的~ 第一步,我想先让大家知道路由原本的样子和解析后的样子 原:Route::get('/home', 'HomeController@index')-&gt;name('home'); 解析后:app\...
  • 跟我学Laravel路由

    2020-12-18 17:55:13
    最简单的Laravel路由由URI和闭包回调函数组成。 基本 GET 路由 复制代码 代码如下: Route::get(‘/’, function() {  return ‘Hello World’; }); 基本 POST 路由 复制代码 代码如下: Route::post(‘foo/bar’, ...
  • 02_Laravel框架路由详解

    2020-08-15 02:34:00
    02_Laravel框架路由详解
  • 使用PHP 8属性在Laravel应用中注册路由 该软件包提供注释以自动注册路由。 这是一个简单的例子: use Spatie \ RouteAttributes \ Attributes \ Get ; class MyController { #[Get('my-route')] public function...
  • Laravel-路由组和中间件 标签(空格分隔): php 定义路由组 Route::group(['prefix'=>'Anime'], function(){ Rout::match(['get', 'post'], 'login', 'Admin\LoginController@login) Route::group(['...
  • 假设增加一个game的路由, 1.在router里增加game.php 2.在RouteServiceProvider中增加映射 3.在Middleware中增加game.php中间件,可直接复制apo.php 4.在Kernel.php中注册中间件。 大功告成。 只是列出了步骤。 ...
  • laravel路由自动加载

    2020-04-08 14:16:49
    laravel路由自动加载 laravel 自带的路由文件有四个 api.php 文件存放 api 路由,会自动加载api前缀和一些中间件。 channels.php 文件用于注册应用支持的所有事件广播频道。 console.php 文件用于定义所有基于闭包...
  • php-Laravel 5路由未定义,虽然是?我对应该如何工作感到有些困惑。 但是我收到{!! Form::model(Auth::user(), ['method' => 'PATCH', 'route' => '/preferences/' . Auth::user()->id]) !!}错误。在我的...
  • 起由:今天帮朋友解决了下bug,bug就是它使用laravel时候,怎样修改路由文件,都没有发生变化,但是故意在routes.php中增加语法错误时又具有错误,因此想到了可能是这个项目使用的laravel路由缓存,而且其路由文件...
  • Laravel ——路由(中间件与路由组)

    千次阅读 2016-06-07 16:00:30
    我们知道,路由是一个过程,分析来自客户端的请求按照路由规则分发至相应的处理逻辑。但有种情况,打个比方:后台。后台不是所有人都能访问的,我们在正式的处理逻辑前,需要做一个验证,比如验证是否具有权限或者...
  • // 注册组件路由 $this->registerRoutes(); // 指定的组件的名称,自定义的资源目录地址 // $this->loadViewsFrom( // __DIR__.'/../../resources/views', 'sjunit' // ); // // 怎么加载config配置文件 $...
  • laravel 创建路由失败原因

    千次阅读 2016-03-12 14:07:16
    laravel 创建路由失败原因第一次安装laravel,安装完成后试着去创建第一个路由,然后在浏览器访问时出现错误404。 路由如下://官方自带 Route::get('/', function () { return view('welcome'); });//我写的 ...
  • Laravel 路由配置

    千次阅读 2018-06-30 11:42:12
    基本路由Route::get('foo', function () { return 'Hello World'; });可用的路由方法Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); ...
  • Laravel 新增路由文件

    2021-08-19 11:30:08
    1.在Routes目录下新增一个 php文件 例如flat.php 2. 在app/Providers/RouteServiceProvider.php 中 新增方法 protected function mapFlatRoutes(){ Route::...访问路由 {url}/flat/test 就能找到你要的数据数据
  • Laravel 中最简单的路由由一个 URI 和一个闭包调用组成。 基本 GET 路由 复制代码 代码如下: Route::get(‘/’, function() { return ‘Hello World’; }); 基本 POST 路由 复制代码 代码如下: Route::post(‘foo/...
  • 深入浅出 Laravel 路由执行原理

    千次阅读 2018-07-13 12:15:10
    本文首发于「深入浅出 Laravel 路由执行原理」,转载请注明出处。这篇文章我们将学习 Laravel 项目中一个很重要的主题 --「路由」。可以说几乎所有的框架都会涉及到「路由」的处理,简单一点讲就将用户请求的 url ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,464
精华内容 1,785
关键字:

laravel如何注册路由