5

用 Laravel 很久了,现在正在用 Lumen 写一个微项目。

我需要将一些变量传递给所有视图。在 Laravel 中,我可以View::share()在中间件或控制器的构造函数中使用该函数,但在 Lumen 中没有View类,看起来所有视图功能都只是View::make()别名。

有没有办法将变量共享给所有视图?

4

2 回答 2

2

出于性能原因,Lumen 没有像 Laravel 那样注册外观和服务提供者。虽然 Laravel 外观包含在 Lumen 中,但只有一些有别名(View不是其中之一),并且只有在您取消注释$app->withFacedes();行时bootstrap/app.php(您可以检查Laravel\Lumen\Application::withFacades方法以查看哪些)。因此,为了使用其他门面,例如View,您需要自己为门面类起别名:

// "bootstrap/app.php" is a good place to add this
class_alias('Illuminate\Support\Facades\View', 'View');

或者您可以在任何需要的地方包含它use

use Illuminate\Support\Facades\View;
于 2015-06-11T01:28:10.487 回答
0

在 Lumen 中与视图共享数据的正确方法是:

app('view')->share(...);

Lumen 文档中没有明确描述的 Laravel 的一些功能可以通过 Lumen 的app()辅助函数来访问。

于 2017-10-29T13:30:30.833 回答