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

基于Laravel实现用户信息收集表单及跨页展示的问题

完成Laravel用户信息收集与展示的后续步骤

1. 配置路由

在routes/web.php中添加对应路由,分别负责显示表单、处理提交请求、展示用户信息:

// 显示表单页面
Route::get('/register', function () {
    return view('register');
})->name('register');

// 处理表单提交
Route::post('/register', [UserInfoController::class, 'store']);

// 展示用户信息页面
Route::get('/user-info', [UserInfoController::class, 'show'])->name('user-info');

2. 创建控制器

首先通过Artisan命令生成控制器:

php artisan make:controller UserInfoController

打开app/Http/Controllers/UserInfoController.php,编写处理逻辑:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserInfoController extends Controller
{
    // 处理表单提交,暂存数据到会话(无需持久化时用此方式)
    public function store(Request $request)
    {
        // 可选:添加表单验证,确保数据合法性
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'surname' => 'required|string|max:255',
            'phone' => 'required|string|max:20',
            'email' => 'required|email|max:255',
        ]);

        // 将验证后的数据存入会话,传递到展示页面
        session()->put('user_info', $validated);

        // 重定向到展示页面
        return redirect()->route('user-info');
    }

    // 展示收集到的用户信息
    public function show()
    {
        $userInfo = session()->get('user_info');

        // 若没有数据,返回表单页面
        if (!$userInfo) {
            return redirect()->route('register');
        }

        return view('user-info', compact('userInfo'));
    }
}

3. 创建信息展示视图

在resources/views目录下新建user-info.blade.php,用于渲染用户信息:

<!DOCTYPE html>
<html>
<head>
    <title>Submitted User Information</title>
</head>
<body>
    <h1>Your Submitted Details</h1>
    <ul>
        <li><strong>Name:</strong> {{ $userInfo['name'] }}</li>
        <li><strong>Surname:</strong> {{ $userInfo['surname'] }}</li>
        <li><strong>Phone Number:</strong> {{ $userInfo['phone'] }}</li>
        <li><strong>E-mail:</strong> {{ $userInfo['email'] }}</li>
    </ul>
    <p><a href="/register">Submit another entry</a></p>
</body>
</html>

可选:持久化数据到数据库

如果需要长期保存用户信息,可添加数据库存储逻辑:

  1. 生成迁移文件:
php artisan make:migration create_user_infos_table
  1. 在迁移文件中定义字段:
public function up()
{
    Schema::create('user_infos', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('surname');
        $table->string('phone');
        $table->string('email');
        $table->timestamps();
    });
}
  1. 运行迁移:
php artisan migrate
  1. 生成模型:
php artisan make:model UserInfo
  1. 修改控制器store和show方法:
public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'surname' => 'required|string|max:255',
        'phone' => 'required|string|max:20',
        'email' => 'required|email|max:255',
    ]);

    // 将数据存入数据库
    $userInfo = \App\Models\UserInfo::create($validated);

    return redirect()->route('user-info', ['id' => $userInfo->id]);
}

public function show($id)
{
    $userInfo = \App\Models\UserInfo::findOrFail($id);
    return view('user-info', compact('userInfo'));
}
  1. 更新路由:
Route::get('/user-info/{id}', [UserInfoController::class, 'show'])->name('user-info');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:55:23