galerie – editace nahraných záznamů

ondrusu
Člen | 118
+
0
-

Ahojte, potřeboval bych poradit.
Mám galerii s fotkami. Fotky se ukládají na file systém s tím, že každá fotka má i svůj popis v db.
V show.latte mám výpis obrázků (+ každá fotka má u sebe checkobx a tím lze editovat / smazat více fotek najednou).
Zde je kod, kterým se zjištuje co uživatel zaškrnul aby to mohl editovat.

  public function actionEdit($id) {
      if ($this->getHttpRequest()->isMethod('POST') && !$this->edit_images) {
          $this->edit_images = $this->getHttpRequest()->getPost('images_list');
      }
  }

  public function renderEdit($id) {
      if (!$this->isAjax()) {
          $gallery = $this->gallery_facade->getGallery($id);
          $images = $this->gallery_facade->getGalleryImageListFromIds(
                     $gallery->getAcGalleryImages(),
                     $this->edit_images
          );
...
      }
  }

Podle proměnné $this->edit_images se řídí jaká IDčka jsou vybraná k editaci.
Ale nedaří se mi tuto proměnnou předat z formuláře, kde se fotky nahrávají do renderEdit.
Mám nadefinovaný formulář přes nette-forms a metodu success.

public function handleFormSuccess(Form $form) {
    $id = $this->getParameter('id');
    $data = $form->getValues();

    $ids_img = $this->gallery_facade->uploadImages($data, $id);
    $this->edit_images = $ids_img;
    $this->redirect("Gallery:edit", $id);
}

Metoda uploadImages mi vrátí IDčka aktuálně nahraných fotek. Jak je předat do render edit?

Děkuji.

David Matějka
Moderator | 6445
+
0
-

tim, ze to ulozis do $this->edit_images = $ids_img; a hned presmerujes, tak se to logicky ztrati, musis si to predat treba pres url

ondrusu
Člen | 118
+
+1
-

to je pravda. A jak lze prosím pomocí redirect poslat takovýto tvar url:
gallery/edit/7?images_list[]=6&images_list[]=11

Edited:
již jsem na to přišel
$this->redirect("Gallery:edit", array('id' => $id, 'images_list' => $ids_img));
jak jednoduché
Děkuji Davide za pomoc.

Editoval ondrusu (9. 4. 2017 16:39)