发布于2026-04-19 阅读(0)
扫一扫,手机访问

本文讲解为何 <button> 标签无法直接跳转路由,以及如何正确使用 <a> 标签配合 route() 辅助函数,将当前认证用户的 ID 传递至 users.edit 路由,同时保持按钮式外观与语义化 HTML 结构。
本文讲解为何 `
在 Laravel 开发中,常见需求是将用户信息(如姓名)渲染为可点击的“按钮式链接”,点击后跳转至其编辑页面(如 users.edit)。但需注意:<button> 标签本身不具备导航能力——它不会响应 href 属性,即使你写了 href="{{ route('users.edit', [...]) }}",浏览器也完全忽略该属性,导致点击无反应。
✅ 正确做法是使用语义化的 <a>(锚)标签,并通过 CSS 控制样式使其视觉上呈现为按钮:
<div class="p-2 bd-highlight text-center text-secondary align-center">
<a href="{{ route('users.edit', ['id' => Auth::user()->id]) }}"
class="rounded-circle inline-flex items-center justify-center px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white font-medium rounded-lg transition-colors duration-200">
<span>{{ Auth::user()->name }}</span>
</a>
</div>? 关键要点说明:
? 小技巧:若项目已全局定义 App\Models\User 的 Route::model('user', User::class),还可简写为 route('users.edit', Auth::user()),Laravel 会自动提取主键。
综上,用 <a> 替代 <button> 并非妥协,而是遵循 HTML 语义与 Web 标准的最佳实践——既保证功能可用、代码可访问(screen readers 可识别链接),又便于样式控制与后续扩展。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8