Chybný překlad php výrazu match(){…} v latte šabloně?

m.brecher
Generous Backer | 864
+
0
-

Ahoj,

V latte šabloně jsem použil php výraz match() s klíčovým slovem default. Parametr sítem neprošel a nebyl zachycen jako default což vyhodilo chybu. V Tracy jsem v přeloženém php kódu šablony viděl, že Latte přeložilo klíčové slovo default jako string – přidalo apostrofy, což je špatně.

Reprodukce kódu v latte šabloně:

{php
    $caption = match($table){
         'article' => 'Editovat článek',
         'category' => 'Editovat kategorii',
         'section' => 'Editovat sekci',
         default => 'Editovat položku',
     }
}
m.brecher
Generous Backer | 864
+
0
-

David Grudl napsal(a):

https://github.com/…e/issues/267

OK, příště nalezené chyby nahlásím přímo tam ;)

Šaman
Člen | 2659
+
0
-

Já to teda pochopil tak, že David poslal odkaz na uzavřenou issue, protože je již vyřešená.
namísto default => 'Editovat položku' psát 'default' => 'Editovat položku'

Marek Bartoš
Nette Blogger | 1263
+
0
-

Na issue se odkazuje commit, který přidává podporu pro literal default. Github ukazuje u commitů první tag, který jej obsahuje, v tomhle případě 2.10.4
Řešení je tedy aktualizovat Latte.