View :: composer не работает с поставщиком услуг boot () - PullRequest
1 голос
/ 07 ноября 2019

Внутри Laravel Пакет EspacePartenaire Мне нужно поделиться некоторыми данными между всеми его представлениями, используя View Composer .

Метод Ths boot() внутри EspacePartenaireServiceProvider содержит следующее:

$this->loadViewsFrom(__DIR__ . '/views', 'espace-partenaire');

View::composer('*', CurrentPartenaireComposer::class);

Но я не хочу делиться данными во всех представлениях. Мне это нужно только в представлениях, которые находятся в папке представлений пакета /packages/EspacePartenaire/src/views

Когда я изменяю аргументы функции composer, как показано ниже:

View::composer('espace-partenaire', CurrentPartenaireComposer::class);

или

View::composer('espace-partenaire::*', CurrentPartenaireComposer::class);

У меня была ошибка, что мои переменные не определены.

Как этого добиться?

РЕДАКТИРОВАТЬ : Это файл маршрутов пакета:

Route::group([
    'middleware' => ['web', 'auth'],
    'namespace' => 'App\Services\EspacePartenaire\Http\Controllers',
    'prefix' => 'espace-partenaire'
], function(){
    ...
    Route::get('/', 'EspacePartenaire@index');
    ...
});

1 Ответ

1 голос
/ 07 ноября 2019

Исходя из структуры ваших пакетов, я думаю, что следующий подход может сработать, кажется, что первый параметр - это путь, и вы можете использовать * как подстановочный знак.

View::composer('*espace-partenaire*', CurrentPartenaireComposer::class);
...