Php Laravels雄辩的ORM:设置模型的数据类型

Php Laravels雄辩的ORM:设置模型的数据类型,php,laravel,orm,laravel-4,eloquent,Php,Laravel,Orm,Laravel 4,Eloquent,目前我有一个简单的表,有两行:id和key 每当我尝试使用City::get从数据库获取数据时,响应都包含字符串格式的id列 是否有一种简单的方法/包可以定义每个列的数据格式?例如,本例中的-id应该是一个整数 型号: <?php class City extends Eloquent { protected $table = 'cities'; protected $primaryKey = 'Id'; } 输出: false true 您确定数据库中的数据类型也

目前我有一个简单的表,有两行:id和key

每当我尝试使用City::get从数据库获取数据时,响应都包含字符串格式的id列

是否有一种简单的方法/包可以定义每个列的数据格式?例如,本例中的-id应该是一个整数

型号:

<?php
class City extends Eloquent {

    protected $table = 'cities';
    protected $primaryKey = 'Id';

}
输出:

false
true

您确定数据库中的数据类型也是整数INT吗? 否则,您可以将字符串转换为整数。例如:

$num = "4.5";
$int = (int)$num;

return gettype($int); // Integer

您确定数据库中的数据类型也是整数INT吗? 否则,您可以将字符串转换为整数。例如:

$num = "4.5";
$int = (int)$num;

return gettype($int); // Integer

来自数据库的记录中的每个字段都将是字符串

这就是PHP中有多少个db扩展可以正常工作

RubyonRails保持模式的常量映射,以知道tableA.field1是一个整数,因此它可以在获取数据库时将任何内容转换为int。这显然有一些开销,但它可能是一个有用的特性。拉威尔选择不这样做是为了性能而不是方便


您可以使用手动复制此功能。

数据库中记录的每个字段都将是字符串

这就是PHP中有多少个db扩展可以正常工作

RubyonRails保持模式的常量映射,以知道tableA.field1是一个整数,因此它可以在获取数据库时将任何内容转换为int。这显然有一些开销,但它可能是一个有用的特性。拉威尔选择不这样做是为了性能而不是方便


您可以使用手动复制此功能。

雄辩的模型具有属性强制转换,可用于提示每个模型属性的类型

5.0: 5.4: 这是我使用eloquent开发锁定到PHP5.4的遗留应用程序的案例。 出于某种随机原因,我没有试图弄清楚,每个属性都是作为字符串从数据库中检索的,而默认的PHP强制转换给我带来了问题

您的代码是:


雄辩的模型有一个属性强制转换,可以用来提示每个模型属性的类型

5.0: 5.4: 这是我使用eloquent开发锁定到PHP5.4的遗留应用程序的案例。 出于某种随机原因,我没有试图弄清楚,每个属性都是作为字符串从数据库中检索的,而默认的PHP强制转换给我带来了问题

您的代码是:


id列也是int吗?是的,它是自动递增的主键。数据类型为INT。可以粘贴模型吗?这很奇怪,因为我添加了一个用于调试的模块,它检查数据类型并强制转换它们……是的,当然。刚刚发布了模型和控制器。id列也是int吗?是的,它是自动递增的主键。数据类型为INT。可以粘贴模型吗?这很奇怪,因为我添加了一个用于调试的模块,它检查数据类型并强制转换它们……是的,当然。刚刚发布了模型和控制器。是的,我绝对确定数据库中的数据类型。也许拉威尔不知怎的把它编错了索引?如果是,有没有办法重新运行指数化过程?对于单个变量来说,转换是可以的,但是如果我有多个包含各种行的表,我认为这种解决方案只会让代码看起来很糟糕。是的,我绝对确定数据库中的数据类型。也许拉威尔不知怎的把它编错了索引?如果是,有没有办法重新运行指数化过程?对于单个变量,转换是可以的,但是如果我有多个表,表中有各种各样的行,我认为这个解决方案会让代码看起来很糟糕。是否有某种包/库可以解决这个问题?据我所知,没有。PHP是弱类型的,所以PHP不关心。这取决于输出的方向。为了将东西输出到JSON,我构建了分形,它可以帮助处理各种类型的东西:是否有某种包/库可以解决这个问题?据我所知,没有。PHP是弱类型的,所以PHP不关心。这取决于输出的方向。为了将内容输出到JSON,我构建了分形(Fractal),它可以帮助处理各种类型:直接用于模型上的字段。遗憾的是,我不知道如何在透视表上实现这一点。对于模型上的字段来说,这太棒了。遗憾的是,我不知道如何在透视表上实现这一点。