| Autor | Zpráva | ||
|---|---|---|---|
| Filip111 Profil |
#1 · Zasláno: 14. 8. 2012, 15:39:59 · Upravil/a: Moderátor (editace znemožněna) 16. 8. 2012, 10:48:51
Ahoj, po nějaké době jsem se zase začal snažit o zprovoznění Doctrine2 a opět jsem se zasekl na asociacích.
Mám dvě entity Content a ContentText. Content je hlavička záznamu(článku), ContentText jsou jeho jazykové verze a snažím se je spolu provázat tak, abych se z entity Content dostal na texty článku. Pořád mi to ale hlásí nějaké chyby, takže bych byl rád kdyby se na to někdo zběhlí podíval a řekl zda uvažuji správně, případně co je špatně. Příklad DB struktury (zjednodušeno): CREATE TABLE `content` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `date_created` datetime DEFAULT NULL, `status` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ); CREATE TABLE `content_text` ( `id` int(10) unsigned NOT NULL, `lang` char(2) NOT NULL, `title` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`,`lang`) ); Pro názornost jsem vyházel settery a gettery, není v nich nic zajímavého. Entita Content: namespace Model;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity
* @Table(name="content")
*/
class Content
{
/**
* @Id
* @Column(type="integer")
* @GeneratedValue
*/
private $id;
/**
* @Column(name="date_created", type="date")
*/
private $dateCreated;
/**
* @Column(type="boolean")
*/
private $status;
/**
* @OneToMany(targetEntity="ContentText", mappedBy="id")
*/
// TADY SI NEJSEM JIST HODNOTOU V mappedBy
private $texts;
public function __construct()
{
$this->texts = new ArrayCollection();
}
}Entita ContentText: namespace Model;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity
* @Table(name="content_text")
*/
class ContentText
{
/**
* @Id
* @Column(type="integer")
*/
private $id;
/**
* @Column(type="string")
*/
private $lang;
/**
* @Column(type="string")
*/
private $title;Celé to končí chybou undefined index: id což je právě to id uvedené v definici asociace: @OneToMany(targetEntity="ContentText", mappedBy="id") Zkoušel jsem i obousměrné asociace, ale to jsem pak vše smazal. Pokud by se to podařilo zprovoznit byl bych opravdu rád. Díky za každou radu. |
||
|
Časová prodleva: 13 let
|
|||
0