Lomit v Route::FILTER_OUT

MKI-Miro
Člen | 261
+
0
-

Ahojte

Ked vraciam takyto string s / tak mi to vrati url v tvare /product/puzzle/17992, namiesto „puzzle-1000/nazov“

Robim nieco zle? Dakujem

Route::FILTER_OUT => function($id) {
                    if (!is_numeric($id))
                    {
                        return $id;
                    }
                    else
                    {
                        $puzzle = $this->puzzleRepository->findAll()->get($id);

                            if ($puzzle->category_pieces != null)
                            {
                                return "puzzle-" . $puzzle->category_pieces->alias . "/" . $puzzle[$this->alias];

Editoval MKI-Miro (12. 6. 2020 10:22)

David Matějka
Moderator | 6445
+
0
-

a jsi si jistý, že se ti ta routa volá a nechytí to nějaká předchozí routa?

MKI-Miro
Člen | 261
+
0
-

David Matějka napsal(a):

a jsi si jistý, že se ti ta routa volá a nechytí to nějaká předchozí routa?

ked to lomitko dam prec tak to spravi url taku ako ma byt len bez potrebneho lomitka

David Matějka
Moderator | 6445
+
0
-

tak budeš potřebovat nastavit masku parametru, aby podporoval /, viz https://doc.nette.org/…tion/routing#…

MKI-Miro
Člen | 261
+
0
-

David Matějka napsal(a):

tak budeš potřebovat nastavit masku parametru, aby podporoval /, viz https://doc.nette.org/…tion/routing#…

ach dakujem nevsimol som si to tam, funguje to.

Čiže:
Výchozí validační podmínkou je [^/]+, tj. vše kromě lomítka. Pokud má parametr přijímat i lomítka, uvedeme podmínku .+.

Route::PATTERN => '.+.',