Преобразование массива в строку в регистре JS - Yii2 - PullRequest
0 голосов
/ 09 марта 2020

На мой взгляд, у меня есть массив, который я могу получить, выполнив:

$model->stabilimenti;

Теперь в том же представлении, в регистре JS Я пытаюсь сохранить этот массив в Javascript массив, поэтому я могу добавить некоторые проверки на стороне клиента.

<?php
$this->registerJs(<<<JS
    jQuery(document).ready(function(){

    let jsArray = [];
    jsArray = $model->stabilimenti;

JS
);

С переменными, не относящимися к массиву, этот подход работает.

Я также пытался использовать эту запись, но безуспешно.

let jsArray = <?php echo json_encode($model->stabilimenti); ?>;

Это лецитовая операция?

1 Ответ

1 голос
/ 09 марта 2020

Вам не хватает закрывающих скобок и скобок }) функции .ready(function(){, если это не опечатка, вставляющая код здесь.

Вы должны проанализировать массив php до javascript, оставаясь в php с помощью yii\helpers\JSON или json_encode в массиве $model->stabilimenti и преобразовать его в json, а затем присвоить его переменной javascript. и попробуйте загрузить код в DOM ready, используя \yii\web\View::POS_READY при регистрации вашего скрипта.

И вы должны держать код отдельно друг от друга. Посмотрите код ниже, он должен работать правильно

<?php
$stabilimenti = \yii\helpers\Json::encode($model->stabilimenti);

$js = <<<JS
jQuery(document).ready(function(){
    let jsArray = {$stabilimenti};
});
JS;
$this->registerJs($js, \yii\web\View::POS_READY);
...