Size: a a a

2021 May 20

АП

Андрей П. in Yii Framework 2
Лишь бы понятно было
источник

PB

Pavel Bykov in Yii Framework 2
А нет перепутал конфигурацию, вот та которая отвечает за Response и ответ в виде JSON
        [
           'class' => ContentNegotiator::class,
           'formats' => [
               'application/json' => Response::FORMAT_JSON,
           ]
       ],

И я не очень понимаю что нужно указать ContentNegotiator что бы отключилась сортировка...
источник

NO

Nex Otaku in Yii Framework 2
Смотри в чëм дело. На самом деле фреймворк ничего не сортирует.

Но.

В языке PHP и JS немного разные ассоциативные массивы (в JS зовутся объектами).

В PHP ключи ассоциативного массива упорядочены так, как были добавлены в массив. То есть массив может быть такой
['a' => 1, 'b' => 2]
а может такой, в зависимости от того в каком порядке ты его заполнял
['b' => 2, 'a' => 1]

В JS по-другому, все ключи сортируются при вставке в массив. Поэтому в каком порядке ты бы ни заполнял ключи, когда читаешь их они всегда будут отсортированы.

Приходится помнить об этом когда передаëшь данные из PHP в JS.

Решается таким образом, делаешь не ассоциативный массив а обычный, в элементы пишешь уже пары ключ-значение:
[['key' => 'b', 'value' => 2], ['key' => 'a', 'value' => 1]]
источник

PB

Pavel Bykov in Yii Framework 2
@nex_otaku
Может я не до конца понял, но я отправляю вот такой response
public function actionTest()
{
return [4 => [], 3 => []];
}

Но по итогу приходит ответ
{
3: [],
4: []
}
источник

PB

Pavel Bykov in Yii Framework 2
То-есть я как бы правильно составляю массив...
источник

PB

Pavel Bykov in Yii Framework 2
так как мне нужно
источник

NO

Nex Otaku in Yii Framework 2
Ты прочитай просто что я пишу )
источник

NO

Nex Otaku in Yii Framework 2
Это поведение встроено в JS и ты его не сможешь обойти.

Единственный способ — поменять структуру данных, по принципу что я описал.
источник

Д

Дмитрий in Yii Framework 2
А jsпри парсинге делает как нужно ему. Передавай объектом.
источник

PB

Pavel Bykov in Yii Framework 2
Просто я пока не использую JS, я просто пытаюсь вывести результат в Advance rest client....
источник

NO

Nex Otaku in Yii Framework 2
Он объектом и отдаëт. Тут в другом дело )
источник

PB

Pavel Bykov in Yii Framework 2
мб он парсит...
источник

NO

Nex Otaku in Yii Framework 2
Без разницы, хоть в обычном JS хоть где. Это стандарт...
источник

PB

Pavel Bykov in Yii Framework 2
стандарт JS, ну ладно пойду еще поэкспериментирую, спасибо за наводку
источник

СБ

Сергей Бурков... in Yii Framework 2
можно глянуть сырой ответ через curl
источник

V

Victooor in Yii Framework 2
При чем тут курл?
источник

СБ

Сергей Бурков... in Yii Framework 2
убедиться что это не yii сортирует )
источник

ES

Eugene She in Yii Framework 2
А как переопределять конфиги в локальные при таком подходе?
источник

NO

Nex Otaku in Yii Framework 2
Ну один из вариантов - не переопределять их )

Локальные настройки можно тянуть из .env
источник

ES

Eugene She in Yii Framework 2
Да но это накладывает ограничения, куда проще смержить 2 пхп файла вроде
источник