laravel 的加盟申请表应在 post 路由里校验姓名、邮箱和城市,再只保存通过校验的字段。申请状态由服务端设为 pending,表单提交时带上 csrf 令牌。
注册表单页和提交入口
示例使用 Laravel 12 的 web 路由。先准备 franchise_applications 表,含 id、name、email、city、status 和时间戳字段。
use App\Http\Controllers\FranchiseController;
use Illuminate\Support\Facades\Route;
Route::view('/franchise/apply', 'franchise.apply')->name('franchise.apply');
Route::post('/franchise/apply', [FranchiseController::class, 'store'])
->name('franchise.store');

示例面向同站网页表单。页面访问和提交使用同一会话。
校验输入并限定写入字段
在 FranchiseController 中添加 store 方法。状态固定在服务端,调用者无须传入。
public function store(\Illuminate\Http\Request $request)
{
$data = $request->validate([
'name' => ['required', 'string', 'max:80'],
'email' => ['required', 'email', 'max:254'],
'city' => ['required', 'string', 'max:80'],
]);
\Illuminate\Support\Facades\DB::table('franchise_applications')->insert([
'name' => $data['name'],
'email' => $data['email'],
'city' => $data['city'],
'status' => 'pending',
'created_at' => now(),
'updated_at' => now(),
]);
return redirect()->route('franchise.apply')->with('submitted', true);
}

无效请求不会进入写入步骤。成功后重定向回表单,浏览器刷新时不会再次提交同一 POST。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
在 Blade 回显输入和错误
将片段保存为 resources/views/franchise/apply.blade.php。
@if (session('submitted'))
<p>申请已提交</p>
@endif
用无效邮箱提交时应看到校验错误。用测试邮箱 example@example.test 提交有效数据后,查询数据库应看到一条 pending 记录。










