Laravel:如何将变量传递给我的基本布局

时间:2015-07-07 16:56:46

标签: laravel layout blade

我正在尝试将变量传递给我的基本布局。这是因为我需要在所有页面中使用它。 我以为在我的BaseController上写这样的东西

protected function setupLayout()
{
    if ( ! is_null($this->layout))
    {
        $footertext = MyText::where('status', 1);
        $this->layout = View::make($this->layout, ['footertext' =>$footertext ]);
        }
    }
}

就我而言,我认为在我的main.blade.php上写这样的东西可以起作用。

 {{ $footertext }}.

相反,我有这个错误,

未定义变量:footertext

经过两个小时的环顾四周......我没有找到任何解决方案。 欢迎任何帮助。

4 个答案:

答案 0 :(得分:4)

不久前,我也试图这样做。

如果您使用的是Laravel 5,则可以编辑app/Providers内的AppServiceProvider.php并为此布局注册提供程序,如:

public function boot()
{
  view()->composer('my.layout', function($view) {
    $myvar = 'test';
    $view->with('data', array('myvar' => $myvar));
  });
}

现在,如果您使用的是Laravel 4,我认为它更简单。在app/filters.php

View::composer('my.layout', function ($view) {
  $view->with('variable', $variable);
});

在这两种方式中,您传递的任何变量都可用于扩展主模板的所有模板。

参考文献:

https://laracasts.com/discuss/channels/general-discussion/laravel-5-pass-variables-to-master-template https://coderwall.com/p/kqxdug/share-a-variable-across-views-in-laravel?p=1&q=author%3Aeuantor

答案 1 :(得分:1)

对于我在for j in range(0, 180, get_anglesector):

AppServiceProvider.php使用的laravel 5.3
app/Providers

参考: https://laracasts.com/discuss/channels/general-discussion/laravel-5-pass-variables-to-master-template

*专用课程包括

答案 2 :(得分:0)

有时我们需要将数据从控制器传递到laravel中的视图,例如使用数据库查询,选择选项等等。它具有简单易用的内置功能。我们可以使用with()在laravel中轻松地从控制器发送数据到视图。此外,还有更多方法可以从控制器发送或传递数据。我正在描述如何将数据表单控制器传递给laravel中的一些简单方法。

<强> 1。传递数组:

$data = array(
    'name'  => 'Rakesh',
    'email' => 'sharmarakesh395@gmail.com'
);

return View::make('user')->with($data);

//Accesing $data on view :-

{{$data}}
{{$data['email']}}

<强> 2。使用查询:

function view() {
  $q = Model::where('name', '=', 'Foo')->first(); 
  $users = Model::order_by('list_order', 'ASC')->get();
  return $view->with('users', $users)->with('q', $q);
}
//Accesing on view :-
{{ $q->name }}

希望能帮到你:)。

答案 3 :(得分:0)

在Laravel 5.6中,这些方法均无效。 AppServiceProvider

public function boot()
{
    View::share('key', 'value');
}

View是立面Illuminate\Support\Facades\View