美文网首页PHP学习之旅
Laravel框架-自定义路由

Laravel框架-自定义路由

作者: 记忆的北极 | 来源:发表于2018-08-18 18:07 被阅读11次

    最近一段时间开始学习了PHP中的Laravel框架,PHP的基础的知识已经学会,然后就是安装Laravel框架都已经OK了,接下来就是要添加Laravel中的自定义路由了.

    一,添加路由Controller.php文件

    在/app/Http/Controller下创建一个home文件夹,然后创建indexController.php控制器.

    <?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";
        }
    
        public function home()
        {
            echo "333";
        }
    }
    

    在indexController.php中创建了一个IndexController的类,集成基类Controller,并且包含了两个函数,一个是index()函数,另一个是home()函数.这两个函数就是路由的分发处理函数,在接下来要创建的home.php的路由里面会映射这些函数.

    二,创建自定义路由home.php文件

    在/routes路径下创建一个home.php文件,然后添加路由映射.添加映射请求的方法,这里使用的GET方法, 'aaa' 是请求路径,后面的 'IndexController@index' 是映射相应的控制器和响应的函数.

    <?php
    Route::get('aaa','IndexController@index');
    Route::get('sss','IndexController@home');
    
    三,在/Providers/RouteServiceProvider.php中添加路由的路径.

    (1),先创建一个路由函数

       protected function mapHomeRoutes()
        {
            Route::prefix('home')
                ->middleware('home')
                ->namespace($this->namespace.'\home')
                ->group(base_path('routes/home.php'));
        }
    

    (2),然后再map函数里添加路由方法

       public function map()
        {
            $this->mapApiRoutes();
    
            $this->mapWebRoutes();
    
            $this->mapHomeRoutes(); //添加执行的路由方法
    
            //$this->mapHomeLoginRoutes();
            //
        }
    

    (3),至此,简单的自定义路由就已经创建完毕了,这个时候我们可以在浏览器里请求测试.

    屏幕快照 2018-09-05 下午3.31.21.png

    这里的aaa路径在home.php里已经定义好了会映射到IndexController.php中的index()函数.所以index()函数里会echo'111222'.

    四,添加路由验证.路由验证功能是访问当前的路由的时候需要验证身份.

    (1),添加路由验证文件
    在app/Http/Middlewarex下创建一个VerifyHome.php文件,代码如下

    <?php 
    namespace App\Http\Middleware;
    use Closure;
    
    class VerifyHome
    {
        public function  handle($request, Closure $next)
        {
            //if ("判断条件"){
    
    
            return $next($request);
            // }
    
            //返回跳转到网站首页
            // return redirect('/')
        }
    }
    

    这里我也把验证的条件给去掉了,相当于没有验证方法.

    (2),添加验证文件路径
    在app/Http/Kernel.php文件中添加路由验证文件路径

       protected $routeMiddleware = [
            'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
            'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
            'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
            'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
            'can' => \Illuminate\Auth\Middleware\Authorize::class,
            'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
            'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
            'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    
            //添加home路由验证文件路径.
            'home'=>\App\Http\Middleware\VerifyHome::class, 
         
        ];
    

    以上就是自定义路由的添加和路由验证的添加的所有操作,这些都只是基本的操作,刚开始学php需要有耐心,当然还需要有长久的坚持.总有一天会成为一个合格的程序员._

    https://blog.csdn.net/createNo_1/article/details/81035154

    相关文章

      网友评论

        本文标题:Laravel框架-自定义路由

        本文链接:https://www.haomeiwen.com/subject/pjgfiftx.html