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

路由不支持POST方法报错,如何通过CURL提交数据存入数据库

错误根因

你收到的报错是因为路由注册时指定的仅支持GET/HEAD请求,而你提交数据的CURL默认使用POST方式发起请求,二者请求方法不匹配导致校验不通过。

调整步骤

1. 修改路由定义

将原路由的请求方法从get改为post,符合数据写入操作的请求规范:

// 原代码:Route::get('statistics',[StatisticsController::class,'store']);
// 修改后:
Route::post('statistics',[StatisticsController::class,'store']);

注意:如果该路由写在web.php中,Laravel默认会校验CSRF令牌,你可以将这条路由移至api.php中(自动跳过CSRF校验),或者在app/Http/Middleware/VerifyCsrfToken.php的$except属性中添加该路由地址排除校验

2. 优化CURL请求配置

显式声明CURL使用POST请求,避免不同环境下curl默认行为异常,也可以按需添加返回值接收、超时等配置:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://localhost/kdk_local/statistics");
// 显式指定使用POST请求
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "game_id=3&user_id=3&bet=3&win=3&session_id=3");
// 可选配置:要求接口返回结果作为curl_exec返回值,而不是直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
// 可选:捕获请求错误
if(curl_errno($ch)) {
    $error_msg = curl_error($ch);
    // 这里可以处理错误日志
}
curl_close($ch);

3. 补充模型配置(可选,避免批量赋值报错)

确认你的Statistics模型中已经配置了$fillable属性,允许对应字段批量赋值:

// Statistics.php 模型中添加
protected $fillable = ['game_id', 'user_id', 'bet', 'win', 'session_id'];

完成以上调整后即可正常接收POST提交的数据并写入数据库。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:24:04