Laravel 5.1 - 主要 blade 布局中的变量

Laravel 5.1 - Variable in main blade layout

我正在使用 Laravel 5.1。我的布局视图中的变量有问题。

在我的布局视图中,我使用变量在我的 DashboardController:

上显示像这样的活动登录用户
...
class DashboardController extends Controller {

        public function index(Request $request) {
            //
            $title = "Dashboard";
            $userActive = $request->user();
            return view('dashboard.index', compact('title', 'userActive'));
        }
...

$userActive是显示谁在登录。我的问题是,如果我使用另一个函数或另一个 Contoller,我需要像上面那样编写这个($userActive)代码。

如何通过只写一次使其变得简单?

您可以在 blade 模板中访问 A​​uth class 以访问当前登录的用户:

{{ Auth::user()->name }}

或者您可以尝试使用视图编辑器:http://laravel.com/docs/5.0/views#view-composers

另一种方法是使用 share() 方法。例如,您可以在 AppServiceProvider 中添加以下代码:

view()->share('currentUser', Auth::user());

这样在任何视图中您都可以通过 $currentUser 变量访问登录用户。 文档:http://laravel.com/docs/5.1/views#sharing-data-with-all-views

我在这种情况下的做法:

创建一个 views/includes/menu.blade.php 文件并将其包含在 app.blade.php 文件中:

@include('includes.menu')

而不是调用 {{ Auth::user()->name }} 始终需要使用菜单,在菜单上。blade.php 按照建议将以下内容 {{ Auth::user()->name }} 放在菜单文件中。

是的,您在 blade 中访问 Auth class。试一试:

{{ Auth::user()->name }}

如果你使用哨兵:

{{ Sentry::getUser()->name }}