ziskanie id dvoch prvkov po odoslani formulara

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
attika8
Člen | 23
+
0
-

Ahojte,

prosím vás riešim taký problém, mám formulár na pridanie knihy klasicky(názov,autor,…, a na konci mam klučové slovo).

metoda AddFormSuceeded

function addFormSucceeded(Form $form)
      {
          $values = $form->getValues();

         //  $id = (int) $this->getParameter('id'); - vrati 0

       dump($id);
       dump($values);

        $this->AdminFacade->Add($values->name,$values->author,$values->mediatype,$values->isbn,$values->publisher,$values->issue_number,$values->place,$values->page_count,$values->year,$values->language,$values->keyword);
         $this->flashmessage('Záznam úspešne vložený');

         $this->redirect('Admin:default');
      }

v AdminFacade metoda Add :

function add($name,$author,$mediatype,$isbn,$publisher,$issue_number,$place,$page_count,$year,$language,$keyword)
        {
            $row = $this->database->table('book')->insert(array(
            'name'=>$name,
            'author'=>$author,
            'mediatype'=>$mediatype,
            'isbn'=>$isbn,
            'publisher'=>$publisher,
            'issue_number'=>$issue_number,
            'place'=>$place,
            'page_count'=>$page_count,
            'year'=>$year,
            'language'=>$language
            ));
            $row = $this->database->table('key_word')->insert(array(

            'word'=>$keyword
            ));

        }

čo sa snažím zistiť je ako možem získať v metóde AddFormSucceeded id_book a kedze zapisujem aj do tabulky key_word tak potrebujem zistit aj id_key_word a spolu ich zapisat do tabulky book_key_word, aby som ich mal prelinkované.
Momentalne mam zapisane v slovo v key_word a mam id tohto slova a mam aj id_book a potrebujem ich spojit do tabulky. Da sa to spravit rovno v metode AddFormSucceeded?
Viete mi prosim pomoct?
Dakujem.

petr.pavel
Člen | 535
+
0
-

Ve funkci add() se podívej do $row – hodnotu primárního klíče ti tam doplní insert().

Jestli to nakonec potřebuješ v addFormSucceeded() tak si to vrať přes return :-)

Edit: Koukám, že v dokumentaci k Nette Database se to nedozvíš, takže musíš do dokumentace k NotORM, ze kterého NDB vychází.

Editoval petr.pavel (4. 3. 2013 14:09)