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

Laravel实现仅展示ID/名称并点击跳转至详情页的需求

解决方案

1. 修复路由冲突问题

你当前两个路由指向同一地址且名称重复,会导致只有第一条路由生效。需要拆分列表页与详情页路由:

// 列表页路由
Route::get('/tenderview', 'TenderViewController@index')->name('tenderview.index');
// 详情页路由(带ID参数,支持路由模型绑定)
Route::get('/tenderview/{kind}', 'TenderViewController@show')->name('tenderview.show');

2. 调整控制器逻辑

  • index方法负责获取列表数据并返回视图
  • show方法负责接收ID参数,获取单条Kind模型详情
public function index()
{
    // 获取Kind列表,按创建时间倒序分页(每页8条)
    $dataa = Kind::orderBy('created_at', 'DESC')->paginate(8);
    return view('tenderview', ['dataa' => $dataa]);
}

public function show(Kind $kind)
{
    // 利用路由模型绑定自动获取对应ID的Kind实例
    return view('tender-detail', ['kind' => $kind]);
}

3. 修改列表视图(tenderview.blade.php)

将ID改为可点击链接,仅展示ID和名称:

@foreach($dataa as $dater)
    <h5 class="card-title">
        <b>
            <!-- 生成跳转到详情页的链接 -->
            <a href="{{ route('tenderview.show', $dater) }}">{{ $dater->id }}</a>
        </b>
    </h5>
    <p><b>{{ $dater->name }}</b></p>
@endforeach

<!-- 渲染分页按钮 -->
{{ $dataa->links() }}

4. 创建详情视图(tender-detail.blade.php)

在该视图中展示Kind模型的完整详情:

<h3>Kind详情</h3>
<p>ID: {{ $kind->id }}</p>
<p>名称: {{ $kind->name }}</p>
<!-- 按需添加其他需要展示的字段 -->

核心说明

  • 路由模型绑定:路由参数{kind}会自动匹配对应ID的Kind实例,无需手动调用Kind::find($id)
  • 路由命名:使用不同名称避免冲突,同时方便视图中生成链接
  • 分页:保留原有分页功能,通过$dataa->links()快速渲染分页控件

内容的提问来源于stack exchange,提问作者Mohaila Tlaba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:03:20