我有一箇舊的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」)和賓果得到了正確的國家:),我在我的表中的所有關係父母--->得到了多重經驗,但有些沒有。我想我會學習更多關於它,當我與它合作。,這是一個公認的答案:)再次感謝你 –