skowron-line u mnie cały formularz jest generowany AJAXem ale mniejsza o to co poprzednio napisałem.
Zrobiłem tak, że w ajaxie generuje po staremu i brzydkiemu bo nie mam pomysłu jak to inaczej zrobić. Co do obsługi to wykombinowałem takie coś:
Czyli w skrócie:
1. Tworzę sobie tablicę na inputach, którą przetwarzam w pętli foreach
2. Odszukuje klienta i klasę adresową z bazy
3. Na końcu uaktualniam rekord AdresyIp ale to nie działa nie wiem czemu, bo w/g dokumentacji trzeba tylko zmienić właściwości obiektu i dać flush żeby doctrine zrobił update na rekordzie
/* obsluga formularza */
if ($request->getMethod() == 'POST') {
$em = $this->getDoctrine()->getManager();
$repositoryKlienci = $this->getDoctrine()->getRepository('IwacomBundleCMSBundle:Klienci');
$repositoryAdresyIp = $this->getDoctrine()->getRepository('IwacomBundleCMSBundle:AdresyIp');
$repositoryKlasyAdresowe = $this->getDoctrine()->getRepository('IwacomBundleCMSBundle:KlasyAdresowe');
$klasa = $request->request->get('klasaadresowa');
$klasyadresowe = $repositoryKlasyAdresowe->findOneByKlasa($klasa[0]);
foreach($request->request->get('wybierz-klienta') as $rek => $val) {
$dns = $request->request->get('revdns');
$adres = $request->request->get('adres');
$adresyip = new AdresyIp();
$klienci = $repositoryKlienci->find($val);
$adresip = $repositoryAdresyIp->findOneByAdres($adres[$rek]);
if ($klienci && $klasyadresowe) {
$adresyip->setAdres($adres[$rek]);
$adresyip->setKlienci($klienci);
$adresyip->setKlasyadresowe($klasyadresowe);
if (!$adresip) {
//tutaj wyjatek potrzebny zeby dodal nowe rekordy
$em->persist($adresyip);
}
$em->flush();
}
}
}