Control vygeneruje špatný link
- Michal Hlávka
- Člen | 190
Zdravím,
v presenteru volám Control, který vracím do komponenty a následně využívám v šabloně. V Controlu se generuje signál link, jenže se vygeneruje špatně.
Jsem na adrese
.../payment/64d09026637fa6736a6164879b40746096969484.1
ale Control
vrací link .../payment/default?do=Control-signal
. Přitom bych
očekával link v této
podobě .../payment/64d09026637fa6736a6164879b40746096969484.1?do=Control-signal
Napadá Vás něco? Děkuji předem za reakce.
Editoval emptywall (28. 6. 2016 12:30)
- Barvoj
- Člen | 60
Asi by neškodilo napsat nějaký kód :) Takhle z hlavy mě napadá akorát.. jestli to 64d09026637fa6736a6164879b40746096969484.1 je nějaký identifikátor? Máš ho v prezenteru nastavený jako persistent?
- Michal Hlávka
- Člen | 190
No nějak jsem doufal, že v tomhle případě to bude srozumitelně
vysvětlený. Když ten Control prostě generuje link na adrese
/payment/64d09026637fa6736a6164879b40746096969484.1
tak vůbec
parametry v routě (<hash>.<id>) nezahrne do generovani linku.
- Michal Hlávka
- Člen | 190
Teď zjišťuji, že nebude chyba v Controlu. Routu mám postavenou takhle.
$router[] = new Route('//[!<subdomain (www|devel|www.devel)>].[!<domain [a-zA-Z0-9-]+>].[!<tld [a-zA-Z0-9-]+>]/payment/<hash>.<orderId [0-9]+>', [
'lang' => 'en',
Route::MODULE_KEY => 'Front',
Route::PRESENTER_KEY => 'Payment',
'action' => 'default',
'subdomain' => $domainMap['subdomain'],
'domain' => $domainMap['domain'],
'tld' => $domainMap['tld'],
]);
ta se mě matchne a momentálně na ní jsem. Spustí mi presenter Payment a v akci default udělám tohle.
public function renderDefault()
{
var_dump($this->link('this')); die();
}
dump mi vrátí string(16) "/payment/default"
- Barvoj
- Člen | 60
Ano automaticky se tam ty parametry nezahrnou. Máš 2 možnosti:
- udělat je v presenteru persistentní:
class PaymentPresenter {
/** @persistent */
public $hash;
/** @persistent */
public $id;
}
nebo
2.) uvést je v renderDefault..
public function renderDefault($hash, $id)
{
...
}