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

时间:2015-10-04 23:34:43

标签: php laravel blade

我想将多个变量返回到我的视图中。

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

此代码工作正常,但如果我也想分享$needToBePassed怎么办,我该怎么办?

重写是一种好习惯吗?

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

3 个答案:

答案 0 :(得分:10)

您可以传递数据数组

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

答案 1 :(得分:3)

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

我一直在寻找一种无需改变所有观点即可解决此问题的方法。

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

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

答案 2 :(得分:0)

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

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

在 Laravel 7 和 8 中测试和工作