我知道这似乎是一个非常基本的问题,但是请在投票之前,阅读到最后。
当使用Codeigniter和Doctrine 2时,我想到了这个问题。
我注意到,至少在使用annotation时,Syntax与使用Doctrine 2和Symfony2时略有不同,我想知道为什么。
我将提供一个示例:
这是Symfony2中一个具有多对一关系的类:
<?php
namespace Pondip\LakeBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Mapping as ORM;
/**
* Lake
*
* @ORM\Table(name="pondip_lake")
* @ORM\Entity(repositoryClass="Pondip\LakeBundle\Entity\LakeRepository")
*/
class Lake
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
* @Assert\Type(type="Pondip\LakeBundle\Entity\Venue")
*
* @ORM\ManyToOne(targetEntity="Pondip\LakeBundle\Entity\Venue")
* @ORM\JoinColumn(name="venue_id", referencedColumnName="id")
*/
private $venue;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var text
*
* @ORM\Column(name="description", type="text", nullable=true)
*/
private $description;
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Pondip\UserAccountBundle\Entity\User")
* @ORM\JoinColumn(name="created_by", referencedColumnName="id", nullable=true)
*/
private $createdBy;
请关注所有的@ORM\无处不在。
现在,当使用codeigniter2/Doctrine2.3.0时,我的控制台中有映射错误。但是,在遵循一些TUT时,我最终删除了所有ORM\(以及相应的使用原则\ORM\Mapping作为ORM),并且成功了。
这项工作:
<?php
namespace Entity;
/**
* Friend Model
*
* @Entity
* @Table(name="friend")
* @author Miles Yohann Merran <hello_miles@hotmail.com>
*/
class Friend
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(type="string", length=32, unique=true, nullable=false)
*/
protected $name;
/**
* @Column(type="text", nullable=false)
*/
protected $description;
/**
* @Column(type="string", length=64, nullable=false)
*/
protected $picture;
/**
* @Column(type="string", length=64, nullable=false)
*/
protected $genre;
/**
* @ManyToOne(targetEntity="User", inversedBy="friends")
* @JoinColumn(nullable=false)
*/
protected $user;
/**
* @var datetime $date
*
* @Column(name="date", type="datetime")
*/
protected $date;
当这不起作用时(注意ORM)
<?php
namespace Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Friend Model
*
* @Entity
* @Table(name="friend")
* @author Miles Yohann Merran <hello_miles@hotmail.com>
*/
class Friend
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(type="string", length=32, unique=true, nullable=false)
*/
protected $name;
/**
* @Column(type="text", nullable=false)
*/
protected $description;
/**
* @Column(type="string", length=64, nullable=false)
*/
protected $picture;
/**
* @Column(type="string", length=64, nullable=false)
*/
protected $genre;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="friends")
* @ORM\JoinColumn(nullable=false)
*/
protected $user;
/**
* @var datetime $date
*
* @ORM\Column(name="date", type="datetime")
*/
protected $date;
为什么?有什么区别?
编辑:确切地说,我尝试了两个实体,具有相同的结构,一个在avery注释句之前带有@ORM\,另一个没有。当使用终端命令时,带有@ORM\的没有被教义2正确管理,没有的工作得非常好。即使我在文档和src中清楚地看到有共同主义、ORM主义和DBAL主义,我也找不到任何关于这一点的留档。它们彼此之间不兼容吗?如何妥善管理这种差异?特别是在使用S之外的其他框架时(如CI2)
谢谢你
长话短说,在symfony中,条令注释读取器是注释读取器
,而在使用条令设置::createAnnotationMetadataConfiguration
帮助程序的CI中,默认情况下您拥有SimpleAnnotationReader
。
通过将false
传递给Setup::createAnnotationMetadataConfiguration
的第五个参数$useSimpleAnnotationReader
,您应该能够拥有与symfony中相同的行为。
问题内容: 对于“属性”和“属性”之间的区别,我通常感到困惑,并且找不到很好的资源来简洁地详细说明这些区别。 问题答案: 属性是一种特殊的属性。基本上,当Python遇到以下代码时: 它查找中,然后检查,看它是否有一个,或方法- 如果这样做,这是一个性质。如果它 是 一个属性,则不仅会返回该对象(就像对其他任何属性一样),还会调用该方法(因为我们一直在进行查找),并返回该方法返回的内容。 有关Py
问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代
问题内容: 可以在这里找到代码: 我发现有内标记,也有内标签。它们都是必需的吗?(在这种情况下,CSS似乎覆盖了HTML属性)关于它们之间的区别是否有任何解释? 问题答案: 我检查了文档,但是它们并不清楚如果同时设置了它们。 那藏在这里的某个地方: UA可以选择使用HTML源文档中的表示属性。如果是这样,则将这些属性转换为对应的CSS规则,其特异性等于0,并且将其视为在作者样式表的开头插入。因此,
问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代
问题内容: 我不太了解它们之间的区别,因此我对这两个软件包有一些疑问。 在Google上浏览了一下之后,似乎Oracle决定使用JDK7版本的更新和增强软件包来更新该软件包。 封装的性能与封装相比如何? 从到有什么大变化?(例如新方法,功能) 为什么必须对原始软件包进行更新? 如今是该软件包的代名词吗? 这并不是我想在代码中使用旧版包,我对此真的很好奇。请告诉我他们的区别? 问题答案: Java最
问题内容: 从一些初始教程中,我看到属性属于类,并且本质上是C ++世界中使用的“全局变量”(在几年前进行了编码)。我也将变量视为更多的“本地”实体,仅在方法中使用/存储信息。 然后我遇到了这个Quora线程:https : //www.quora.com/Apple-Swift-programming-language/What-is-the-difference- between-a-prop