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

如何在Laravel中实现按钮点击计数器?

在Laravel中实现点击计数按钮

下面是对应你原生PHP代码功能的Laravel实现方案,遵循Laravel的MVC规范和安全要求:

1. 定义路由

在routes/web.php中添加路由,分别负责页面展示和表单提交逻辑:

use App\Http\Controllers\CounterController;

// 展示计数页面
Route::get('/counter', [CounterController::class, 'show'])->name('counter.show');
// 处理计数增减/重置操作
Route::post('/counter', [CounterController::class, 'handle'])->name('counter.handle');

2. 创建并编写控制器

运行php artisan make:controller CounterController生成控制器,然后替换内容为:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CounterController extends Controller
{
    // 展示计数页面,传递当前计数值到视图
    public function show()
    {
        $counter = session()->get('counter', 0); // 不存在则默认0
        return view('counter', compact('counter'));
    }

    // 处理表单提交的操作
    public function handle(Request $request)
    {
        if ($request->has('button')) {
            session()->increment('counter'); // Laravel内置的session递增方法
        } elseif ($request->has('reset')) {
            session()->put('counter', 0); // 重置计数为0
        }

        return redirect()->route('counter.show'); // 重定向回展示页面
    }
}

3. 创建视图文件

在resources/views/counter.blade.php中编写前端内容,注意Laravel要求的CSRF令牌:

<form method="POST" action="{{ route('counter.handle') }}">
    @csrf <!-- 必须添加,防止跨站请求伪造 -->
    <input type="submit" name="button" value="Counter" />
    <input type="submit" name="reset" value="Reset" />
    <br>
    当前计数: {{ $counter }}
</form>

可参考的Laravel文档章节

  • HTTP Session:学习session的获取、设置、递增等核心操作
  • CSRF保护:了解@csrf指令的作用和表单提交的安全规范
  • 路由与控制器:掌握Laravel中路由定义和控制器逻辑编写的基础

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:13:15