Latte\Essential\Filters::dataStream(): Argument #1 ($data) must be of type string, Nette\Utils\Image given

- elnathan
- Člen | 20
Ahoj, nápověda uvádí, že je možné do dataStream vložit
Nette\Utils\Image
https://latte.nette.org/cs/filters#…
$img = Image::fromFile('obrazek.gif');
<img src={$img|dataStream}>
Jenže to vyvolá chybu, protože přijímá pouze string
https://github.com/…/Filters.php#L346
public static function dataStream(string $data, ?string $type = null): string
Tak a co z toho je tedy správně?

- Lumeriol
- Generous Backer | 70
Ahoj, ono to je v podstatě správně.
Ale díky čím dál větší striktnosti PHP už se objekt Image
nepřekonvertuje pomocí magické funkce __toString() na řetězec.
Musíš tak buď použít
<img src={(string)$img|dataStream}>
nebo
<img src={$img->toString()|dataStream}>
Ani jedno není z hlediska jednoduchosti ideální, ale nikdo před lety nemohl toto předpokládat :)