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

Laravel如何实现点击职位列表详情按钮跳转新页加载对应数据

实现方案(你提到的第一种思路是最优解,Laravel生态下默认用主键ID做资源唯一标识)

步骤1:添加详情路由

在routes/web.php中新增以下路由定义:

use App\Http\Controllers\PostController;

// 路由模型绑定会自动根据传入的ID查询对应职位数据,找不到直接返回404
Route::get('/posts/{post}', [PostController::class, 'show'])->name('posts.show');

步骤2:新增控制器查询方法

打开你的PostController,新增show方法:

// 参数里的Post是你的职位模型类,要对应自己的命名空间
public function show(\App\Models\Post $post)
{
    // 把查询到的单条职位数据传给详情视图
    return view('posts.show', compact('post'));
}

步骤3:修改列表页的详情按钮

把你现有Blade代码里的Details按钮替换成以下内容,不需要用button的onclick,直接用a标签加样式效果完全一致,还自带跳转属性:

<a href="{{ route('posts.show', $post) }}" target="_blank" class="text-white px-4 py-3 rounded text-base font-medium bg-gradient-to-r from-green-400 to-blue-500 float-right shadow transition duration-500 ease-in-out transform hover:-translate-y-1 hover:scale-100">Details!</a>

如果需要保留button标签,就给它加onclick属性:

<button type="button" class="和原有按钮一致的类名" onclick="window.open('{{ route('posts.show', $post) }}')">Details!</button>

这里target="_blank"或者window.open都是为了点击后新开页面展示详情,不需要的话可以去掉直接在当前页跳转。

步骤4:编写职位详情视图

新建resources/views/posts/show.blade.php文件,你可以在这个文件里按需输出职位的所有字段,示例结构:

@extends('layouts.app')

@section('content')
<div class="container">
    <h1>{{ $post->Titel }}</h1>
    <p>工作地点:{{ $post->Standort }}</p>
    <p>联系人:{{ $post->Kontakt }}</p>
    <p>开始日期:{{ $post->startdate }}</p>
    <p>结束日期:{{ $post->enddate }}</p>
    <!-- 这里补充列表页没展示的其他详情字段,比如职位要求、职责描述等 -->
</div>
@endsection

方案说明

  • 用主键ID作为查询条件天然唯一,不存在重复问题,完全符合Laravel的资源路由设计规范
  • 路由模型绑定自动处理数据查询和404响应,不需要你手动写查询代码,开发效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:18:00