使用 view::share( ) - Laravel 5.1 返回多个变量

Returning multiple variables with view::share( ) - Laravel 5.1

我想return多个变量到我的视图。

$currentUser = Auth::user();
$needToBePassed = "Lorem Ipsum"
View::share ( 'currentUser', $currentUser);

这段代码可以正常工作,但是如果我也想分享怎么办$needToBePassed,我该怎么办?

重写它是一种好做法吗?

View::share ( 'currentUser', $currentUser);
View::share ( 'needToBePassed', $needToBePassed);

你可以传递一个数据数组,

$data = array(
    'currentUser' => $currentUser,
    'needToBePassed' => $needToBePassed,
);
View::share('data', $data);

我知道问题已经得到解答,但也许我仍然可以通过添加此解决方案来帮助一些人。这样您就不必更改所有视图。

我一直在寻找一种方法来解决这个问题而不改变我的所有观点。

$currentUser = Auth::user();
$needToBePassed = "Lorem Ipsum";

View::share(['currentUser' => $currentUser, 'needToBePassed' => $needToBePassed]);

您不需要为变量编写多个view:share命令。您可以在单个 command.The view:share 中发送所有这些内容,基本上采用数组,您将如何发送此数组并不重要。您可以使用内置函数 compact 使代码更小。

$currentUser = Auth::user();
$needToBePassed = "Lorem Ipsum"
View::share(compact('currentUser','needToBePassed'));

在 Laravel 7 和 8

中测试并工作