View :: composer在boot()服务提供程序上不起作用

时间:2019-11-07 13:35:54

标签: laravel view package

在Laravel 包装 EspacePartenaire内部,我需要使用 View Composer 在其所有视图之间共享一些数据。

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 个答案:

答案 0 :(得分:1)

根据您的软件包结构,我认为以下方法可能可行,似乎第一个参数是路径,您可以将*用作通配符。

import os
import sys

import pexpect


passphrase = os.environ['HOST_CA_KEY_PASSPHRASE']

command = 'ssh-keygen'
child = pexpect.spawn(command, args=sys.argv[1:])
child.expect('Enter passphrase:')
child.sendline(passphrase)
child.wait()