Ошибка при попытке передать значение ключа перевода json из лезвия laravel в vue.js - PullRequest
5 голосов
/ 21 апреля 2019

Это мой файл перевода

return [
    "Key1" =>  "Message 1",
    "Key2" => "Message 2",
    "Key3" => "Message 3",
    "Key4" => "Message 4",
    "Key5" => "Message 5",
    "Key6" => "Message 6",
    "Key7" => "Message 7",
    "Key8" => "Message 8",
];

Это код в Laravel Blade

<profile
    v-bind:ErrorMessages= "{                            
    Messages: '{!! json_encode(Lang::get('Profile')) !!}'
}">                                
</profile>

В вышеуказанном компоненте:Я пытаюсь передать полный файл перевода с лезвия laravel в Vue.js

Но приведенный выше код распечатывает все ключи на веб-странице и нарушает весь макет.

Я что-то пропустилпередать JSON в правильном формате из laravel в Vue.js

Обновление 1

Я могу передать объект из laravel в vue.js, используя приведенный ниже код.Но ниже это больше похоже на ручную работу, набирая каждый ключ перевода файла один за другим.

<profile
    v-bind:messages= "{                            
    Key1: '{!! trans('Profile.Key1') !!}',
    Key2: '{!! trans('Profile.Key2') !!}',
    Key3: '{!! trans('Profile.Key3') !!}',
    Key4: '{!! trans('Profile.Key4') !!}',
    Key5: '{!! trans('Profile.Key5') !!}',
    Key6: '{!! trans('Profile.Key6') !!}',
    Key7: '{!! trans('Profile.Key7') !!}',
    Key8: '{!! trans('Profile.Key8') !!}'
}">                                
</profile>

Ответы [ 2 ]

5 голосов
/ 23 апреля 2019

Попробуйте:

<profile
    v-bind:ErrorMessages= "'{!! json_encode(Lang::get('Profile')) !!}'">                                
</profile>

Примечание о дополнительных ' между " и { - так что вы передадите то, что вы хотите, в виде строки.

0 голосов
/ 23 апреля 2019

Похоже, вам нужно передать объект: messages

Я не очень знаком с Laravel, пожалуйста, попробуйте следующий вариант:

<profile messages='{!! json_encode(Lang::get("Profile")) !!}'></profile>

или

<profile :messages="{!! json_encode(Lang::get('Profile')) !!}"></profile>
...