如何在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
相关产品推荐
相关产品推荐

