laravel 路由 命名的渲染操作

写在前面:有则改之,无则加勉。

命名使用

  • 例1:
    • 下面有个路由
      Route::get('new/show/{id}', function () { return 111; });
    • 在页面中调用它时
      <a href="{{ url('new/show'.$id) }}" > 1 </a>
      <!--  $id=1 上面的路由会渲染成 <a href="/new/show/1" > 1 </a> -->
    • 如果需要添加参数
      <a href="{{ url('new/show'.$id?.'columnId=3') }}" > 1 </a>
      <!--  $id=1 上面的路由会渲染成 <a href="/new/show/1?columnId=3" > 1 </a> -->
      没错是拼接,这很不优雅

  • 例2:
    • 下面使用命名
      Route::get('new/show', function () { return 111; })->name('new.show');
    • 就可以这样调用它
      <a href="{{ route('new.show', ['id'=>1]) }}" > 1 </a>
      <!-- 上面的路由会渲染成 <a href="/new/show/1" > 1 </a> -->
    • 如果需要添加参数
      <a href="{{ route('new.show', ['id'=>1, 'columnId'=>3]) }}" > 1 </a>
      <!-- 上面的路由会渲染成 <a href="/new/show/1?columnId=3" > 1 </a> -->
      第二个参数使用数组,可以直接传递参数

  • 例3
    • 使用此方式的优势还有,当路由路径更换时
      // Route::get('new/show/{id}', function () { return 111; })->name('new.show');
      // 更换为
      Route::get('new/info/{id}', function () { return 111; })->name('new.show');
    • 渲染链接是不用更换的,方便维护
      <a href="{{ route('new.show', ['id'=>1, 'columnId'=>3]) }}" > 1 </a>
      <!-- 上面的路由会渲染成 <a href="/new/info/1?columnId=3" > 1 </a> -->
      end
本作品采用《CC 协议》,转载必须注明作者和本文链接
it_cwc
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

如果路由需要参数,这个参数是在列表里循环出来的,怎么把js的值传到route里面 :flushed:

3年前 评论
it_cwc (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!