在Laravel 5中,在share方法中,如果我传递数组,如何将索引返回到视图?

时间:2015-12-14 16:26:58

标签: php laravel blade

我有这个数据

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

我以这种方式将数据分享给视图。

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

在我看来(刀片)我访问数据

{{ $data['isAdmin'] }}

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

{{ $isAdmin }}

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

谢谢!

3 个答案:

答案 0 :(得分:3)

答案是否定的。您不必使用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');

要执行此操作,您需要在控制器顶部写入use View;

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

{{ $isAdmin }}

答案 1 :(得分:0)

你共享一个命名数组,用你可以尝试的密钥获取数据

$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

答案 2 :(得分:0)

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

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

现在你可以访问这样的任何键:

{{ $key }}