Laravel学习笔记(2)路由相关

原文:Laravel 路由

阅读小记:

  1. 隐示绑定中,

    Route::get('api/users/{user}', function (App\User $user) {
        // 源地址中的 {} 中的变量名(即:user)和传参名必须完全一致,
        // 变量名可以随意取名,只要保持一致即可
        return $user->email;
    });
    
     自定义键名,在模型中修改(默认指的是数据库中的主键 id):
     App/User.php
    public function getRouteKeyName()
    {
    	// 此时变量名变为了slug,搜索条件从原来的where id=2变成了where slug=2
        return 'slug';
        // api/users/2
        // select * from `users` where `slug` = 2 limit 1
    }
    
  2. 显示绑定

    # RouteServiceProvider
    public function boot()
    {
        parent::boot();
    
        Route::model('user', App\User::class);
    }
    
    // 设置route都使用 App\User这个Model,所以function( App\User $user)的App\User不需要再赘述
    Route::get('profile/{user}', function ($user) {
        //
    });
    
  3. 可以使用 match 方法,也可以使用 any 方法注册一个实现响应所有 HTTP 请求的路由:

    Route::match(['get', 'post'],'/user/create', 'UserController@create')->name('user.create');
    
    Route::any('/user/store', 'UserController@store')->name('user.store');
    
  4. 命名空间

    // 在 "App\Http\Controllers\Admin" 命名空间下的控制器
    Route::namespace('Admin')->group(function () {
        // Admin/UserController@index
        Route::get('/user', 'UserController@index');  
        
         // Admin/UserController@user2 ❶
        Route::get('/user2', 'UserController@user2');  
    });
    
    // Admin/UserController@index
    Route::namespace('Admin')->get('/user', 'UserController@index');  
    
    // Admin/UserController@user2 ❷
    Route::namespace('Admin')->get('/user2', 'UserController@user2');  
    
    // Admin/UserController@user2 ❸
    Route::namespace('Admin')->get('/user2', 'Admin\UserController@user2');  
    

    其中❶❷❸等效,指向同一个控制器

  5. 中间件 Laravel开发文档

    Route::middleware('throttle:60,1')->group(function () {
        Route::get('/user', function () {
            //
        });
    });
    

    优先于middleware优先于route进行运行

  6. Api路由与web路由基本一致,就是访问的时候,要加前缀api
    例如访问web路由web:xxx.com/test
    则访问api路由:xxx.com/api/test

  7. console为控制台路由

    // blog\routes\console.php有如下方法
    Artisan::command('inspire', function () {
        $this->comment(Inspiring::quote());
    })->describe('Display an inspiring quote');
    

    访问方式为在控制台中使用:php artisan inspire;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值