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

Laravel 9路由已存在,点击线索名称访问show_lead返回404问题

问题排查与修复方案

点击客户线索名称返回404错误,主要由以下几个问题导致,逐一修复即可:

1. 控制器方法未接收路由参数

show_lead方法未声明接收路由传递的$id参数,同时模型名未遵循Laravel首字母大写的命名规范,导致无法正确查询数据,最终触发404。

修复后的控制器代码:

public function show_lead($id)
{
    $lead = Lead::find($id);
    
    // 可选:查询不到数据时主动返回明确的404提示
    if (!$lead) {
        abort(404, '该线索不存在');
    }

    return view('admin.leads.show_lead', compact('lead'));
}

2. Blade循环变量名冲突

模板中@foreach($lead as $lead)的变量名重复,循环内部的$lead会覆盖外部的集合变量,导致生成错误的跳转URL。

修复后的Blade代码:

@foreach($leads as $lead)
  <tr>
    <td>
      <a href="{{ url('show_lead', $lead->id) }}">{{ $lead->first_name }} {{ $lead->last_name }}</a>
    </td>
    <td>{{ $lead->company }}</td>
    <td>{{ $lead->email }}</td>
    <td>{{ $lead->phone }}</td>
    <td>{{ $lead->lead_source }}</td>
    <td>{{ $lead->lead_status }}</td>
    <td>
      <a class="btn btn-success fa fa-edit" href="{{ url('edit_lead', $lead->id) }}"></a>
      <a class="btn btn-danger fas fa-trash-alt" onclick="return confirm('Sure You Want To Delete This Lead')" href="{{ url('/delete_lead', $lead->id) }}"></a>    
    </td>
  </tr>
@endforeach

将循环的集合变量改为$leads,避免与单个线索实例变量冲突。

3. 路由路径一致性检查

执行php artisan route:list命令查看实际路由列表,确认show_lead/{id}的完整路径。如果路由存在前缀(比如admin/),则需要修改Blade中的URL生成代码,例如url('admin/show_lead', $lead->id),确保跳转路径与路由规则完全匹配。


内容的提问来源于stack exchange,提问作者Komal Gautam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:53:23