在 Laravel 5 中,在 share 方法中,如果我传递一个数组,我如何 return 索引到视图?

in Laravel 5, in the share method, how can I return indexes to the view if I pass an array?

我有这个数据

$data["isLoggedIn"] = true;
$data["isAdmin"] = true;
$data["isOrg"] = true;

并且我以这种方式将数据共享到视图。

view()->share('data', $this->data);

在我看来 (blade) 我像这样访问数据

{{ $data['isAdmin'] }}

我想用密钥获取数据,例如:

{{ $isAdmin }}

我是否需要创建一个 foreach 数组并传递每个内部键?

谢谢!

你分享了一个命名数组,你可以试试用key获取数据

$isLoggedIn = true;
$isAdmin = true;
$isOrg = true;
view()->share('isLoggedIn', $this->$isLoggedIn)->share('isAdmin', $this->$isAdmin)->share('isOrg', $this->isOrg);

或者您可以将数据作为闪存数据发送

http://laravel.com/docs/5.1/responses#redirecting-with-flashed-session-data

答案是否定的。您不必使用 foreach 循环传递这些数据。您可以通过以下方式完成此操作:

在控制器中:

$data["isLoggedIn"] = true;
$data["isAdmin"] = true;
$data["isOrg"] = true;
return view('your_view', $data);

另一方面,要在全局所有视图中共享这些数据,您必须在控制器中执行以下操作:

View::share('isLoggedIn', true);
View::share('isAdmin', true);
View::share('isOrg', true);
return view('your_view');

为此,您需要在控制器顶部写入 [​​=14=]。

在blade中:(例如yourview.blade.php):

{{ $isAdmin }}

您可以使用 View facade 使用此语法直接共享数组:

View::share( $this->data );

现在您可以像这样访问任何密钥:

{{ $key }}