Přenos dat z formuláře do shrnutí

kiCkZ
Člen | 153
+
0
-

Ahoj,

Jakým způsobem by jste řešili tento problém:

Mam vytvořenou komponentu, ve které se odkazují na formulář a potřebuji jak po vytvoření tak při editaci potřebuji udělat udělat tzv. shrnutí a až poté dát možnost uložit do databáze, jak by jste toto řešili ?

Jde mi o ten přenos dat z formuláře do toho meziprostoru a až následné potvrzení na odeslání.

Dekuji mockrát

Ondřej Kubíček
Člen | 494
+
0
-

uložení do session třeba ?

kiCkZ
Člen | 153
+
0
-

Ondřej Kubíček napsal(a):

uložení do session třeba ?

Supr a jakým způsobem to provést, momentálně se mi to vůbec nedaří :/

Zde mam můj presenter:

<?php
    public function createComponentInvoiceForm() {
	$form = $this->invoiceForm->create($this->id);
        $form->onSuccess[] = function () {
	    $this->redirect('ReceivedInvoice:Summary');
	};
        return $form;
    }

    public function actionEdit($id) {
	$this->id = (int)$id;
	$invoice = $this->receivedInvoiceRepository->get($id);
	if (!$invoice) {
	    $this->error('Faktura nebyla nalezena');
	}
	$this['invoiceForm']->setDefaults($invoice);
    }
?>

Zde je formulář

<?php
public function create($id) {
	$this->id = $id;
	$form = $this->formFactory->create();

        $year = [];
        for ($i = 2017; $i <= date("Y", time()); $i++) {
            $year[$i] = $i;
        }
	$form->addSelect('year','Rok',$year)
             ->setDefaultValue(date("Y", time()));

	$form->addInteger('number', 'Pořadové číslo')
             ->setEmptyValue('Při nevyplnění bude doplněno automaticky');

	$form->addSelect('customer_id', 'Dodavatel', $this->customerRepository->fetchPairs())
             ->setPrompt('Vyberte dodavatele')
             ->setRequired('Nebyl vybrán dodavatel');

	$form->addText('receive_date', 'Datum přijetí faktury')
             ->setDefaultValue(date_format(new \DateTime(), 'd-m-Y'))
             ->setRequired('%label nebylo zadáno');

	$form->addInteger('invoice_number', 'Číslo faktury')
             ->addRule(Form::MAX_LENGTH, '%label smí být dlouhé maximálně %d', 15)
             ->setRequired('%label nebylo vyplněno');

	$form->addInteger('variable_symbol', 'Variabilní symbol')
	     ->setRequired(false)
             ->addRule(Form::MAX_LENGTH, '%label může být dlouhý maximálně %d', 10)
             ->addCondition(Form::FILLED)
             ->addRule(Form::PATTERN, '%label musím obsahovat pouze číslice', '^\d+$');

//	$form->addUpload('upload', 'Soubor s fakturou')
//             ->addRule(Form::MIME_TYPE,'%label musí být ve formátu PDF.',['application/pdf'])
//             ->setRequired('%label nebyl vybrán');
//
	$form->addText('due_date', 'Datum splatnosti')
	     ->setAttribute('placeholder','dd.mm.rrrr')
             ->setRequired('%label nebylo zadáno');

	$form->addTextArea('subject', 'Předmět fakturace');

	$form->addInteger('amount', 'Částka na faktuře')
             ->addRule(Form::PATTERN, '%label musím obsahovat pouze číslice (případně čárku)', '^-?\d+[.,]?\d+$')
             ->setRequired('%label nebyla vyplněna');

        $form->addSelect('currency_id', 'Měna', $this->currencyRepository->fetchPairs())
             ->setPrompt('Vyberte měnu')
             ->setRequired('%label nebyla vybrána');

//	$form->addMultiSelect('signed_users', 'Schvalující lidé');

	$form->onSuccess[] = [$this,'summaryProcess'];

	$form->addSubmit('send','Uložit');

	return $form;
    }

    public function summaryProcess($form, $values) {
	$session = $this->session->getSection('summerInvoice');
    $session->data = $values;
    }
?>

Vůbec se po pravdě nepochopil, jak to uložit do session z formuláře a následně to načíst v render metodě.