我正在研究理论2 (Beta3)沙箱,并试图应用Zend编码约定,将一个领先的下划线放置到私有类成员。当我查询地址时,当它的私有成员未加标记时,我将按预期检索对象。当我添加下划线、重新生成和重新填充db,然后运行相同的查询时,我会得到以下错误消息:
PHP注意:未定义索引: id在.Doctrine/ORM/Internal/Hydration/AbstractHydrator.php在184号线
PHP致命错误:未命名的异常'Doctrine\DBAL\DBALException‘,消息’未知列类型请求‘。在..。原则/DBAL/DBALException.php:81
DQL查询:
$q = $em->createQuery('select u from Entities\Address u where u.id = ?1');
$q->setParameter(1, '1');
$address = $q->getSingleResult();ZFed地址类:
<?php
namespace Entities;
/** @Entity @Table(name="addresses") */
class Address
{
/**
* @Id @Column(type="integer", length=11, name="id")
* @GeneratedValue(strategy="AUTO")
*/
private $_id;
/** @Column(type="string", length=255, name="street") */
private $_street;
public function getId()
{
return $this->_id;
}
public function getStreet()
{
return $this->_street;
}
public function setStreet($street)
{
$this->_street = $street;
}
}发布于 2010-09-01 05:43:34
您必须在所有DQL查询之前写_是的。
变量前面的下划线是某种匈牙利符号,我们作为理论团队不喜欢。据我所知,即使Zend也会放弃新代码的样式。许多其他项目也是这样做的,PEAR2甚至在这方面改变了他们的标准。
https://stackoverflow.com/questions/3613719
复制相似问题