Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel在Windows上返回int,在Linux上返回字符串_Laravel - Fatal编程技术网

Laravel在Windows上返回int,在Linux上返回字符串

Laravel在Windows上返回int,在Linux上返回字符串,laravel,Laravel,我有MySql云主机 表(成员)-字段(id、名称、余额) 当我在Windows计算机上使用Laravel访问时,它们(id,balance)返回为Int 但是 当我在Linux机器上使用Laravel访问时,所有字段都以字符串形式返回 因此,这个问题可能导致计算操作错误,因为它们读取为字符串。 有没有办法在没有$casts的情况下解决这个问题?似乎MySQL驱动程序中存在问题。默认情况下,Laravel使用准备好的语句。有两种方法:调整Linux设置或在代码中使用转换(强制转换或(int))

我有MySql云主机

表(成员)-字段(id、名称、余额)

当我在Windows计算机上使用Laravel访问时,它们(id,balance)返回为Int

但是

当我在Linux机器上使用Laravel访问时,所有字段都以字符串形式返回

因此,这个问题可能导致计算操作错误,因为它们读取为字符串。
有没有办法在没有$casts的情况下解决这个问题?

似乎MySQL驱动程序中存在问题。默认情况下,Laravel使用准备好的语句。有两种方法:调整Linux设置或在代码中使用转换(强制转换或(int))


请看。您需要调整
PDO::ATTR\u EMULATE\u编制

,这与MySQL和您正在使用的驱动程序(作为其他答案状态)有关


除此之外,这不是问题,PHP是一种动态类型语言,因此返回字符串没有任何区别,除非您通过
is_int()
运行值,该值将显式检查它是否确实是整数。如果您正在这样做,请不要使用
is_number()
,因为它可以处理所有类型。

请用更多信息和一些重要代码更新您的帖子。我确信Windows/Linux中没有问题。L5+MySql+Win=return Int,L5+MySql+Linux=return String,for.ex。成员::all();或DB::table('members')->get();可能是重复的我不使用浏览器,我使用邮递员,如果你使用linux所有集合返回字符串,对吗?我希望返回IntegerLook,您是说您正在尝试
Member::all()
。这将返回所有成员的集合,而不是整数或字符串。您没有给出其他示例。请尝试
echo gettype($yourCollection->user\u id)在Linux和Windows中。在Linux字符串上,在Windows integerOk上。您是否在Linux服务器和Windows服务器上运行Laravel?或者服务器是相同的,而您正试图从Linux/Winodws家庭PC访问它?