我有一个实体,其属性定义如下:
/**
* @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)
答案 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
希望有所帮助!