Multiplier a notice, chyba v názvu
- Johnczek
- Člen | 37
Zdravím, chci použít multiplier a ručně vykreslovaný formulář.
Takto to je v šabloně
<div class="col-1">{form changeAmount-$basketItem['article']->getId()}<input name="amount" type="number" value="{$basketItem['amount']}" class="form-control">{/form}</div>
A takto v presenteru
protected function createComponentChangeAmount() {
return new Multiplier(function ($productId) {
$form = new Form;
$form->addProtection('Platnost formuláře vypršela! Zkuste to prosím znovu.');
$form->addHidden('articleId', $productId);
$form->onSuccess[] = [$this, 'addReviewSucceeded'];
return $form;
});
}
public function ChangeAmountSucceeded(Form $form) {
$data = $form->getHttpData();
$productId = $data['productId'];
$amount = $data['amount'];
... bla bla
}
Hlásí mí to nejprve notice *PHP Notice: Use of undefined constant
changeAmount – assumed ‚changeAmount‘ in
…\templates-Order-default.latte–809434283e.php:70
*
Když ji odignoruji tak to píše že component s názvem –1 neexistuje.
(asi kvůli tomu že product id je 1 + ta pomlčka předtím- uplně se
odignoruje to changeAmount) Nevíte někdo proč se tak děje?
- David Matějka
- Moderator | 6445
ahoj, takhle slozite vyrazy v
{form changeAmount-$basketItem['article']->getId()}
bohuzel podorovane nejsou. zkus, jestli nebude nahodou fungovat:
{form changeAmount-{$basketItem[article]->getId()}}
jestli ne, tak si to nejdrive dej do nejake pomocne promenne:
{var $id = $basketItem['article']->getId()}
{form changeAmount-$id}
- Johnczek
- Člen | 37
David Matějka napsal(a):
ahoj, takhle slozite vyrazy v
{form changeAmount-$basketItem['article']->getId()}
bohuzel podorovane nejsou. zkus, jestli nebude nahodou fungovat:
{form changeAmount-{$basketItem[article]->getId()}}
jestli ne, tak si to nejdrive dej do nejake pomocne promenne:
{var $id = $basketItem['article']->getId()} {form changeAmount-$id}
Ahoj, děkuji za bleskovou odpověď.
Funguje druhá varianta (uložení do proměnné). U první varianty to hlásí
syntax error na unexpected složené závorce. (To spíše pro další
programátory kteří by řešili podobný problém)