将数据从控制器共享到部分页脚

时间:2017-03-05 15:01:09

标签: php laravel laravel-5 laravel-5.3

在我的应用中,我将视图中的文件夹分为:

"posts"
"pages"
"partials"
layout.blade.php

在我的文件夹中,我有刀片文件,例如nav.blade.php和footer.blade.php。在我的文件夹“pages”中,我有home.blade.php等文件和其他一些内部页面。 但是现在我需要将一个可行的控制器传递给我的页脚,因为需要在所有视图中共享。 我如何从我的PagesController传递变量来管理页脚文件夹“pages”中的刀片文件?

示例路线:

Route::get('/', 'PageController@getHome');
Route::get('/registar', 'AuthenticationController@getRegistration');
Route::post('/post/comment', 'CommentController@store');
Route::get('/login', 'AuthenticationController@getLogin');

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望每次调用特定视图时共享一些数据?如果是这样,你可以这样做:

/* App\Providers\AppServiceProvider.php
** Edit the boot function, (dont forget to include View facade) */

public function boot(){
   View::composer('path_to_view', function($view)
    {
        $view->with('variable', $variable); // you can pass array here aswell
    });
}

执行此操作的其他方法(如果要从正在访问的视图中扩展页脚布局)是在扩展布局时传递数据,如下所示:

@extends('footer', ['data' => $data])

答案 1 :(得分:0)

如果您需要在提供商的多重视图中共享相同的变量。你也可以尝试这个

public function boot()
{
        //set view path in array
        View::composer(['path_to_view1', 'path_to_view2'], function ($view) {
            $view->with('variableName', $variableName);
        });

}