我有一个旧的MySQL数据库。不知何故,我已经设法从命令行生成实体,但结果与我期望的不同。学说geberated实体,损坏的瓦尔和关系,学说2和zf2
后代已经从我的表和字段名称中删除了_
;比如这个类:
namespace CMS\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Countries
*
* @ORM\Table(name="Countries")
* @ORM\Entity
*/
class Countries
{
/**
* @var integer
*
* @ORM\Column(name="pa_CountryID", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $paCountryid;
/**
* @var string
*
* @ORM\Column(name="t_CountryName", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
*/
private $tCountryname;
/**
* @var string
*
* @ORM\Column(name="t_MapAbr", type="string", length=255, precision=0, scale=0, nullable=true, unique=false)
*/
private $tMapabr;
/**
* Get paCountryid
*
* @return integer
*/
public function getPaCountryid()
{
return $this->paCountryid;
}
/**
* Set tCountryname
*
* @param string $tCountryname
* @return Countries
*/
public function setTCountryname($tCountryname)
{
$this->tCountryname = $tCountryname;
return $this;
}
/**
* Get tCountryname
*
* @return string
*/
public function getTCountryname()
{
return $this->tCountryname;
}
/**
* Set tMapabr
*
* @param string $tMapabr
* @return Countries
*/
public function setTMapabr($tMapabr)
{
$this->tMapabr = $tMapabr;
return $this;
}
/**
* Get tMapabr
*
* @return string
*/
public function getTMapabr()
{
return $this->tMapabr;
}
}
我的问题:
- 如何生成正是实体相同的表和字段的名字呢?
- 如果我有另一个使用
pa_CountryID
作为外键的实体;我如何使他们之间的关系能够一步到位?
我的其他实体看起来是这样的:
<?php
namespace CMS\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* LoginUsers
*
* @ORM\Table(name="Login_Users", indexes={@ORM\Index(name="fulltext", columns={"pt_userName", "t_firstName", "t_lasName"})})
* @ORM\Entity
*/
class LoginUsers
{
/**
* @var integer
*
* @ORM\Column(name="pa_userID", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $paUserid;
/**
* @var string
*
* @ORM\Column(name="pt_userName", type="string", length=50, precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $ptUsername;
/**
* @var integer
*
* @ORM\Column(name="i_CountryID", type="integer", precision=0, scale=0, nullable=true, unique=false)
*/
private $iCountryid;
}
谢谢你的反应速度快,我是新进的Zend TECHNOLOGIE和学说,这是一个很好的例子,但我仍然有一个问题有关的链接,结果我得到了阅读并应用该解决方案后,例如我为记录的国家ID是117,但是它获得的ID为234的对象我检查了查询但没有在SQL中应用联接。正在搜索为什么映射始终采用数据库中的最后一行或结果集不是确切的那一行? –
噢,我做了以下从构造上的Countries类删除代码,因为每个用户只有1个国家,修复loginusers类中的映射:@ORM \ JoinColumn(name =“i_CountryID”,referencedColumnName =“id” ):* @ORM \ JoinColumn(name =“i_CountryID”,referencedColumnName =“pa_CountryID”)和宾果得到了正确的国家:),我在我的表中的所有关系父母--->得到了多重经验,但有些没有。我想我会学习更多关于它,当我与它合作。,这是一个公认的答案:)再次感谢你 –