PHP 7 a routování s moduly

adioverride
Člen | 26
+
0
-

Ahoj,
změnil jsem na hostingu verzi PHP z 5.6 na 7.0 a nastal mi malinký problém. Mám v aplikaci nastaveny router i s překlady:

$router = new RouteList();

$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);

$router[] = $reservationRouter = new RouteList('Reservation');

$reservationRouter[]  = new Route('stav-<presenter>/<action>[/<id>]', array(
	'presenter' => array(
		Route::VALUE => 'reservation',
		Route::FILTER_TABLE => array(
			'rezervace' => 'reservation',
		),
	),
	'action' => array(
		Route::VALUE => 'reservation',
		Route::FILTER_TABLE => array(
			'vyber-sluzby' => 'selectService',
			'vyber-zamestnance' => 'selectEmployer',
		),
	),
	'id' => NULL,
));

Po výběru služby přesměruji aplikaci na „selectEmployer“ v tu chvíli udělá to že název akce dá místo ID.

Před výběrem služby:
localhost/stav-rezervace/vyber-sluzby/pobocka

Přesměrování: ($this->redirect(‚selectDate‘, $this->getParam(‚id‘)) – jako parametr se předá pobočka).

Po přesměrování:
localhost/stav-rezervace/vyber-zamestnance/selectEmployer

Poradíte někdo?

Martk
Člen | 651
+
0
-

Vypadá to jako bys měl persistentní parametr $id. A tento kód $this->redirect(‚selectDate‘, $this->getParam(‚id‘) říká, přesměruj na akci selectDate v daném presenteru a jako první parametr dej $this->getParam('id') předpokládám, že jako první parametr máš $id

h4kuna
Backer | 740
+
0
-

Zkusil bych v tom přesměrování pojmenovat parametry, nenechávej to na nette, pak si to jednoho dne přehodíš a jsi namydlenej.

$this->redirect('selectDate', ['id' => $this->getParam('id')])