B. *_*os. 5 php symfony doctrine-orm
我有一个实体,其属性定义如下:
/**
* @var integer
*
* @ORM\Column(name="weight", type="integer")
*/
private $weight;
Run Code Online (Sandbox Code Playgroud)
我试图解决一个错误并使用var_dump()来了解发生了什么......
答复是:
string '20' (length=2)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么$ weight会以字符串形式返回...它不应该是一个整数吗?
int 20
Run Code Online (Sandbox Code Playgroud)
或者我应该在我的业务逻辑中处理它?
编辑(我怎么称为var_dump()):
我有一个名为"Calculator"的类,它迭代$ items并使用$ weight属性.是这样的:
控制器:
$calculator->calculate($category->getItems());
Run Code Online (Sandbox Code Playgroud)
计算器:
foreach($items as $item) {
//logic...
var_dump($item->getWeight());
}
Run Code Online (Sandbox Code Playgroud)
编辑(数据库列架构):
这是数据库中的字段:
weight int(11)
Run Code Online (Sandbox Code Playgroud)
您使用什么版本的 PHP和MySQL 驱动程序?
\n\n我不确切知道 Symfony 如何转换(或不转换)数据库结果,但如果您使用 PHP 5.2,这可能很正常:您从 PHP 中的 MySQL 获得的任何变量始终是一个字符串,即使它\ 是数据库中的一个整数。
\n\n在 PHP 5.3 中,如果使用正确的驱动程序,情况会有所不同(mysqlnd\xe2\x80\x94 请参阅http://blog.ulf-wendel.de/2008/pdo_mysqlnd-the-new-features-of-pdo_mysql/)
有关更多详细信息,请参阅此答案:\n /sf/answers/170146021/
\n\n希望有帮助!
\n