laravel 路由 命名的渲染操作

it_cwc發表於2020-12-17

寫在前面:有則改之,無則加勉。

命名使用

  • 例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

相關文章