Symfony / Doctrine:为什么我的整数Entity属性以字符串形式返回?

时间:2015-11-29 18:37:17

标签: php symfony doctrine-orm

我有一个实体,其属性定义如下:

/**
 * @var integer
 *
 * @ORM\Column(name="weight", type="integer")
 */
private $weight;

我试图解决一个错误并使用var_dump()来了解发生的事情......

回应是:

string '20' (length=2)

我不明白为什么$ weight会以字符串形式返回...不应该是一个整数?

int 20

或者我应该在我的业务逻辑中处理它?<​​/ p>

编辑(我如何调用var_dump()):

我有一个名为&#34;计算器&#34;迭代$ items并使用$ weight属性。是这样的:

控制器:

$calculator->calculate($category->getItems());

计算器:

foreach($items as $item) {
    //logic...

    var_dump($item->getWeight());
}

编辑(数据库列架构):

以下是数据库中的字段:

weight  int(11) 

1 个答案:

答案 0 :(得分:0)

您使用的是什么版本的PHP MySQL驱动程序

我不确切知道Symfony如何投射(或不投射)数据库结果,但如果你使用PHP 5.2,那就很正常了:你在PHP中从MySQL获得的任何变量总是一个string,即使它是数据库中的整数。

在PHP 5.3中,如果您使用正确的驱动程序(mysqlnd - 请参阅http://blog.ulf-wendel.de/2008/pdo_mysqlnd-the-new-features-of-pdo_mysql/

,则会有所不同

有关详细信息,请参阅此答案: https://stackoverflow.com/a/2430657/1741150

希望有所帮助!