You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel详情页重复显示数据:如何仅展示单个ID对应内容?

Laravel详情页返回两条数据问题解决

问题原因分析

  1. 路由模型绑定变量名不匹配:控制器方法参数用了复数$transactions,但路由参数通常为单数{transaction},导致Laravel无法自动注入模型实例,$transactions实际是请求传入的ID字符串。
  2. 冗余查询与无效返回:手动调用Transaction::find($transactions)属于重复操作,且return $tran;语句会直接返回数据,后续视图渲染代码完全不会执行。
  3. 数据库约束缺失:截图中出现两条同ID数据,大概率是transactions表的id字段未设置主键/唯一约束,导致出现重复主键记录。

解决方案

1. 修正控制器代码

将参数改为单数匹配路由模型绑定,移除冗余查询和无效返回:

public function show(Transaction $transaction)
{
    return view('admin.transaction.show', compact('transaction'));
}

2. 确认路由配置

确保web.php中的路由参数为单数,与控制器参数对应:

Route::get('/transactions/{transaction}', [TransactionController::class, 'show'])->name('transactions.show');

3. 修复数据库异常

检查transactions表的id字段,设置为主键并添加唯一约束,同时删除重复的ID记录,避免后续数据异常。

4. 验证详情按钮代码

当前按钮代码无需修改,已正确传递单条记录ID:

<td>
<a href="{{route('transactions.show', $transaction->id) }}"><i class="far fa-eye" style="color:blue"></i></a>
</td>

内容的提问来源于stack exchange,提问作者Reza Rahmadika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:15:41