提问人:Q8root 提问时间:9/29/2023 最后编辑:matiaslauritiQ8root 更新时间:9/29/2023 访问量:64
本地和生产 Laravel 项目之间响应数据类型的差异 [副本]
Differences in Response Data Type Between Local and Production Laravel Project [duplicate]
问:
我遇到了一个令人费解的问题,即在我的本地 XAMPP 服务器和生产服务器上运行的 Laravel 项目。本地服务器使用 PHP 8.2.4 和 Apache 2.4.56,而生产服务器使用 PHP 8.2.9 和 Apache 2.4.57。两台服务器都有相同的 Laravel 项目文件。
在我的Laravel项目中,我有一个简单的路线,如下所示:
Route::get('users', function () {
return \App\Models\User::all();
});
在我的本地服务器上,当我访问此路由时,我收到如下所示的 JSON 响应:
[
{
"id": 1,
"name": "test user",
"test_integer": 505,
"email": "sdsdsds",
"email_verified_at": null,
"created_at": null,
"updated_at": null
}
]
但是,在生产服务器上,响应如下所示:
[
{
"id": 1,
"name": "test user",
"test_integer": "555",
"email": "sdsdfdfdfsdsds",
"email_verified_at": null,
"created_at": null,
"updated_at": null
}
]
区别在于字段的数据类型。在本地服务器上,它是一个整数 (),而在生产服务器上,它是一个字符串 ()。test_integer
505
"555"
以下是有关 PHP PDO 模块的一些附加信息:
本地开发服务器 (PHP 8.2.4)
- PDO 支持 => 启用
- PDO 驱动程序 => mysql、pgsql、sqlite
pdo_mysql:
- PDO Driver for MySQL =已启用>
- 客户端 API 版本 => mysqlnd 8.2.4
生产服务器 (PHP 8.2.9)
- PDO 支持 => 启用
- PDO 驱动程序 => mysql、odbc、pgsql、sqlite
pdo_mysql
- PDO Driver for MySQL =已启用>
- 客户端 API 版本 => 3.3.6
我已经确认两台服务器具有相同的 Laravel 项目文件,并且此路由的代码相同。这两个服务器还具有 PHP 模块,例如 和 。mysqli
mysqlnd
是什么原因导致了两个服务器之间的数据类型差异,尤其是在 PDO 和 PHP 版本的上下文中,以及如何确保行为一致?
任何见解或建议将不胜感激。谢谢!
答:
0赞
Othmane Nemli
9/29/2023
#1
当我使用时,我解决了一次。nd_pdo_mysql
(如果您使用的是 CPaneels,当您启用nd_pdo_mysql
php8-mysqlnd
)
评论