galerie – editace nahraných záznamů
- ondrusu
- Člen | 118
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
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
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)