【问题标题】:Returning multiple variables with view::share( ) - Laravel 5.1使用 view::share( ) 返回多个变量 - Laravel 5.1
【发布时间】:2016-01-01 13:43:01
【问题描述】:

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

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

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

重写是个好习惯吗?

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

【问题讨论】:

    标签: php laravel blade


    【解决方案1】:

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

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

    在 Laravel 7 和 8 中测试和工作

    【讨论】:

      【解决方案2】:

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

      我一直在寻找一种在不改变我所有观点的情况下解决此问题的方法。

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 但是我需要调用 $data['currentUser'],对吗?
        • 是的。有问题吗?
        • 不,除了我需要改变我的观点。我认为可能有一种方法可以返回多个数据,例如compact。这样,代码会更整洁
        • 可以使用extract($data)提取$currentUser等元素。
        • 不,不是。你可以做到的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        • 2022-11-24
        • 1970-01-01
        • 2016-07-12
        • 1970-01-01
        相关资源
        最近更新 更多