Вопрос:

Как поместить данные массива из laravel в массив jquery?

jquery arrays laravel laravel-5 laravel-eloquent

371 просмотра

2 ответа

1010 Репутация автора

У меня есть коллекция, которая генерируется, $user->rolesгде roleтаблица role_nameи permissionстолбцы.

Я хочу получить массив разрешений и использовать его, jqueryчтобы я мог использовать его в select2компонентах, для которых требуется массив.

<script>
    $( document ).ready(function() {
        $("#role_select").select2();
          $('#role_select').val( {{ $user->roles->pluck('permission') }} ).trigger('change');
    });
</script>

код выше не работает и в консоли показывает

[&quot;Super&quot;,&quot;Moderate&quot;]

Итак, как я могу получить массив разрешений, удалив &quot;?

Автор: Raj Источник Размещён: 02.01.2018 11:14

Ответы (2)


1 плюс

2344 Репутация автора

Решение

Вы не хотите, чтобы ваши данные избежали:

{!! $user->roles->pluck('permission') !!}
Автор: Leon Vismer Размещён: 02.01.2018 11:28

2 плюса

5727 Репутация автора

Отображение неэкранированных данных уязвимо для атаки XSS , я предлагаю вам поместить ваш массив в атрибут html, например:

<div style="display:none;" id="permissions" data-permissions="{{ json_encode($user->roles->pluck('permission')) }}"></div>

И тогда вы можете получить массив разрешений с помощью метода .data () :

var permissions = $('#permissions').data('permissions');
Автор: YouneL Размещён: 02.01.2018 11:45
Вопросы из категории :
32x32