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

Laravel 9中如何实现Contact到About页面的Session数据传递与显示?

解决Laravel 9中Session数据无法在About视图显示的问题

核心问题与修复步骤

1. 修正控制器saveData方法,确保Session持久化

Laravel的Session数据会在响应发送时才完成持久化,若saveData仅设置Session却不返回响应,数据可能无法正确存储。修改方法如下:

public function saveData(Request $request){
    $request->session()->put('name', $request->nameFull);
    // 重定向到about页面,触发Session存储
    return redirect()->route('about');
}

同时给路由命名,方便跳转维护:

// web.php
Route::get('contact', 'App\Http\Controllers\controllerPage@contact')->name('contact');
Route::post('contact', 'App\Http\Controllers\controllerPage@saveData')->name('contact.save');
Route::get('about', 'App\Http\Controllers\controllerPage@about')->name('about');

2. 检查Contact视图表单的正确性

确保表单提交字段、请求方式及CSRF验证正确:

<form method="POST" action="{{ route('contact.save') }}">
    @csrf
    <input type="text" name="nameFull" placeholder="输入你的名字">
    <button type="submit">提交</button>
</form>
  • 必须添加@csrf,否则Laravel会拦截POST请求。
  • 输入框name属性需与控制器中$request->nameFull一致。

3. 修复About视图的标签错误

原视图中<h2>标签未闭合,修正后:

<h2>Welcome to our site : {{ $name }}</h2>

4. 可选:使用Session辅助函数简化代码

设置Session:

session(['name' => $request->nameFull]);

获取Session:

$name = session('name', 'no data');

验证流程

  1. 访问/contact页面,输入名字提交表单。
  2. 页面将自动重定向至/about,此时应能看到输入的名字正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:42:42