gpt4 book ai didi

zend-framework - Doctrine 2 注释和 Zend 框架强调约定

转载 作者:行者123 更新时间:2023-12-04 04:32:22 27 4
gpt4 key购买 nike

我正在研究 Doctrine 2 (Beta3) 沙箱,并尝试将 Zend Framework 编码约定应用于私有(private)类成员放置前导下划线。当我查询地址时,虽然它的私有(private)成员没有下划线,但我按预期检索对象。当我添加下划线、重新生成并重新填充数据库,然后运行相同的查询时,我收到以下错误消息:

PHP Notice: Undefined index: id in ... Doctrine/ORM/Internal/Hydration/AbstractHydrator.php on line 184

PHP Fatal error: Uncaught exception 'Doctrine\DBAL\DBALException' with message 'Unknown column type requested.' in ... Doctrine/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;
}

}

最佳答案

您必须在所有 DQL 查询前面写 _ 是的。

变量前面的下划线是某种匈牙利符号,我们 Doctrine 团队不喜欢这种符号。据我所知,即使 Zend Framework 也会放弃新代码的这种风格。许多其他项目也这样做了,PEAR2 甚至在这方面改变了他们的标准。

关于zend-framework - Doctrine 2 注释和 Zend 框架强调约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com