Multiplier Unsupported operand types: string – int

vanaveno
Člen | 144
+
0
-

Ahojte, aktualizoval jsem jadro nette a nastavil na serveru php 8.1 Začal mi Multiplier házet error Unsupported operand types: string – int

<?php
    protected function createComponentCartCategoryForm(): Multiplier
    {
        return new Multiplier(function ($productId) {
            $form = new Nette\Application\UI\Form;
            $form->addInteger('quantity', 'Počet zboží:')
                ->setDefaultValue(1);
            $form->addHidden('productId', $productId);
            $form->addSubmit('send', 'Přidat do košíku');
            $form->onSuccess[] = [$this, 'addToCartSucceeded'];
            return $form;
        });
    }

/* šablona */

                       {form cartCategoryForm-$product->productId}
                        <button class="addcart fs-08 tt-ups pr-3 pl-3 d-ib lh-40 f-left" n:name="send">
                            Koupit</button>
                        <div class="quantity mr-2 f-left">{input quantity}</div>
                        {/form}

?>

Editoval vanaveno (30. 12. 2022 16:13)

Marek Bartoš
Nette Blogger | 1152
+
0
-

U každé chyby je dobré uvést, kde přesně vznikla (viz stacktrace), jinak jenom hádáme.

Chyba říká, že se pokouší od stringu odečíst int. Někde ti nejspíš chybí převod numerického stringu na int a to PHP od verze 8 považuje za chybu.

Editoval Marek Bartoš (30. 12. 2022 16:26)

vanaveno
Člen | 144
+
0
-

Laděnka mi ukazuje na tento řádek {form cartCategoryForm-$product->productId}

Marek Bartoš napsal(a):

U každé chyby je dobré uvést, kde přesně vznikla (viz stacktrace), jinak jenom hádáme.

Chyba říká, že se pokouší od stringu odečíst int. Někde ti nejspíš chybí převod numerického stringu na int a to PHP od verze 8 považuje za chybu.

nightfish
Člen | 468
+
+1
-

@vanaveno Zkus {form 'cartCategoryForm-' . $product->productId}.

vanaveno
Člen | 144
+
0
-

nightfish napsal(a):

@vanaveno Zkus {form 'cartCategoryForm-' . $product->productId}.

To mi hlásí Class „App\Front\Presenters\Multiplier“ not found na řádku return new Multiplier(function ($productId) {

nightfish
Člen | 468
+
+2
-

@vanaveno Máš Multiplier v App\Front\Presenters\Multiplier? A nebo chceš spíš použít \Nette\Application\UI\Multiplier?

vanaveno
Člen | 144
+
0
-

Dík za pomoc, má hlava děravá to tam zapomněla dát

nightfish napsal(a):

@vanaveno Máš Multiplier v App\Front\Presenters\Multiplier? A nebo chceš spíš použít \Nette\Application\UI\Multiplier?