/** * * @param \Tip\Repository\IzbirneOpcije $rep * @param string $object * @param array $vals */ public function populateAvtorBesedila($manager, $v) { $rep = $manager->getRepository('Produkcija\\Entity\\AvtorBesedila'); $besediloId = $this->getReference($v[4]); $osebaId = $this->getReference($v[5]); $o = $rep->findOneBy(["besedilo" => $besediloId, "oseba" => $osebaId]); $nov = false; if (!$o) { $o = new \Produkcija\Entity\AvtorBesedila(); $o->setBesedilo($besediloId); $o->setOseba($osebaId); $nov = true; } $o->setTipAvtorja($v[1]); $o->setZaporedna($v[2]); $o->setAliVNaslovu($v[3]); if ($nov) { $rep->create($o); } else { $rep->update($o); } $referenca = 'AvtorBesedila-' . $v[0]; //var_dump($referenca); $this->addReference($referenca, $o); }
public function loadAvtorji() { echo "loading avtorji" . PHP_EOL; $osebaR = $this->em->getRepository('App\\Entity\\Oseba'); $osebaR->setServiceLocator($this->getServiceLocator()); $avtorR = $this->em->getRepository('Produkcija\\Entity\\AvtorBesedila'); $avtorR->setServiceLocator($this->getServiceLocator()); /** * iz csv breberi vse vrstice avtorjev * in jih daj (če se ne ponavlja) v Besedilo */ foreach ($this->src as $key => $vrsta) { /** * v prvi vrsti csv-ja je glava */ if ($key == 0) { continue; } /** * najprej dodamo/ažuriramo osebo */ $oseba = null; //init $oseba = $osebaR->findOneBy(["ime" => trim($vrsta[3]), "priimek" => trim($vrsta[4])]); if (!$oseba) { $oseba = new \App\Entity\Oseba(); $oseba->setIme(trim($vrsta[3])); $oseba->setPriimek(trim($vrsta[4])); $oseba->setPolnoIme(trim($oseba->getIme() . " " . $oseba->getPriimek())); $oseba->setSpol($vrsta[7] == 'Z' ? 'Z' : 'M'); if (!$oseba->getPriimek()) { continue; } $osebaR->create($oseba); } if (!$oseba->getPriimek()) { continue; } $osebaR->update($oseba); /** * dodamo avtorja besedila */ $avtor = new \Produkcija\Entity\AvtorBesedila(); $avtor->setOseba($oseba); $avtor->setTipAvtorja(trim($vrsta[5])); $avtor->setAliVNaslovu($vrsta[6] ? true : FALSE); $avtor->setBesedilo($this->getRef('besedilo', intval($vrsta[0]))); $avtor->setZaporedna($vrsta[8]); $avtorR->create($avtor); $polnoIme = $oseba->getPolnoIme(); echo "oseba {$vrsta['0']} {$polnoIme} " . PHP_EOL; /** * da bo lahko našel osebe, ki smo jih prej dodali * * performančno je sicer slabše */ $this->em->flush(); } }