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

elnathan
Člen | 20
+
0
-

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
+
0
-

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 :)

MajklNajt
Člen | 520
+
0
-

Ono by stačilo, keby dataStream prijímal string|Stringable