douyaosi3164 2018-01-22 22:34
浏览 32
已采纳

Laravel静态可选路由

I am looking for a "quick" and "clean" solution to the usual http://project.name/products/total where total is optional.

I've tried so far this:

Route::get('products/{total?}', 'ProductController@get', function ($total = null) {});

And then $products = ($total == null) ? Product::all() : Product::count();

But this not only works with products/total but products/whatever. I think adding if($total = 'total') is not a good practice.

I want the last parameter to be static, I am not thinking straight. I guess I have to avoid defining two Routes (Route::get('products'... and Route::get('products/total'...

Laravel Documentation is not helping either. What am I doing wrong?

  • 写回答

2条回答 默认 最新

  • dongxiaoying5882 2018-01-22 22:51
    关注

    If your routes are in reality doing different things (even if they are quite similar) then you should probably add two different routes.

    Route::get('products', function () {
          Product::all() 
    });
    
    Route::get('products/total', function () {
          Product::count() 
    });
    

    Of course this does imply that if there's code that's shared between the two routes you can move it to its own helper function/class.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效