Size: a a a

2020 October 19

SI

Sergei Iamskoi in Yii Framework 3
Приветствую! Дано: Api, json. Как вернуть пустой body?
return $responseFactory->createResponse()
- возвращает null.
источник

RM

Rustam Mamadaminov in Yii Framework 3
Вы имеете в виду пустой массив?
источник

SI

Sergei Iamskoi in Yii Framework 3
Нет, отсутсвие body в принцепе. “” - это пустая строка, null - это прям слово null в респонсе. Нужно совсем отсутствие body.
источник

SI

Sergei Iamskoi in Yii Framework 3
Сейчас он выглядит как-то так
источник

SI

Sergei Iamskoi in Yii Framework 3
И далее в коде есть проверка, выводить body или нет, там проверяется размер data, и если он 0, то не выводим. Но вот размер возвращается 4 байта (
источник

SI

Sergei Iamskoi in Yii Framework 3
источник

SI

Sergei Iamskoi in Yii Framework 3
Это в классе \Yiisoft\Yii\Web\SapiEmitter. Пологаю, что 4 байта это как раз null. Но как повлиять на это поведение?
источник

А

Алексей R in Yii Framework 3
тут не в эмиттере проблема
источник

А

Алексей R in Yii Framework 3
если надо пустое тело, то надо создавать Response с пустой строкой, а не с null
источник

А

Алексей R in Yii Framework 3
и вообще странно, что null преобразуется в 'null'
источник

SI

Sergei Iamskoi in Yii Framework 3
Response с пустой стокой возращает пустую строку - а это уже содержимое
источник

SI

Sergei Iamskoi in Yii Framework 3
Т.е. уже 2 байта, содиржимое будет “”
источник

А

Алексей R in Yii Framework 3
т.е. там и заголовок Content-Length: 0?
источник

А

Алексей R in Yii Framework 3
а типа он не нужен?
источник

SI

Sergei Iamskoi in Yii Framework 3
источник

Д

Дмитрий in Yii Framework 3
Создайте Issue, а в своём коде верните 201
источник

А

Алексей R in Yii Framework 3
можно также вторым параметром передать аргумент true в эмиттер emit(ResponseInterface $response, bool $withoutBody = false): bool
источник

SI

Sergei Iamskoi in Yii Framework 3
Алексей R
т.е. там и заголовок Content-Length: 0?
Заголовок равен size: Content-Length: 2
источник

Д

Дмитрий in Yii Framework 3
Алексей R
можно также вторым параметром передать аргумент true в эмиттер emit(ResponseInterface $response, bool $withoutBody = false): bool
Не из контроллера же :)
источник

SI

Sergei Iamskoi in Yii Framework 3
Дмитрий
Не из контроллера же :)
+
источник