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 协议》,转载必须注明作者和本文链接
如果路由需要参数,这个参数是在列表里循环出来的,怎么把js的值传到route里面