2016-12-19 2 views
2

В Laravel вы можете обмениваться данными с точкой зрения, как это: view::share()получить общие переменные в Laravel после прохождения массива

Я хотел бы принести данные, которые присутствуют в виде :: долю в PHP. Я, например, добавлю следующие view::share('scripts', []), и я хотел бы добавить элементы к этой переменной «scripts».

Можно ли получить общие переменные?

+0

Изнутри зрения? – scottevans93

ответ

0

Вы можете использовать метод shared(), чтобы получить элемент из общих данных, как:

view()->shared('key') 

Docs

+0

безупречный, большое спасибо! – vincent

0

Я бы пошел с передачей коллекции вместо массива. Позже это будет проще для использования.

если вы делаете что-то вроде:

$scripts = collect([ 
    'script 1', 
    'script 2', 
    'script 3', 
]); 

View::share('scripts', $scripts); 

Теперь вы можете сделать следующее в ваших просмотров:

@foreach ($scripts as $script) 
    {{ $script }} 
@endforeach 

Во всяком случае, почему вы хотите это сделать? Являются ли эти скрипты, javascript-файлы? Если они есть, используйте представление главной страницы/шаблона и включите все ваши сценарии на одной странице, а не добавляйте их на каждую страницу, как в примере выше.

+0

Они действительно файлы javascript. Мне нужно это, потому что я делаю панель с кучей виджетов. У каждой группы есть другой вид приборной панели. и каждый виджет имеет свою собственную функциональность. таким образом я могу загрузить файлы сценариев для добавленных виджетов. – vincent

+0

Я бы использовал частичные, создавал пули имен групп пользователей и просто вызывал их как: 'include ('scripts.'. Str_slug (auth() -> user() -> role). '.scripts')' или что-то подобное, где скрипты будут включены в основной шаблон на основе группы пользователей/роли. – Ruffles

Смежные вопросы