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

标签 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 }}.

相反,我有这个错误,

undefined variable :页脚文本

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

最佳答案

不久前,我也在尝试做同样的事情。

如果您使用的是 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

关于Laravel:如何将变量传递给我的基本布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274875/

相关文章:

java - 为什么需要用 BoxLayout 调用 setLayout?

android - Android 中的 setContentView 和按钮

laravel-4 - 从字符串而不是文件渲染 Blade

php - 如何获取帖子列表并检查用户是否已经将它们设为 "Liked"? (检查两个模型之间的现有关系)

Laravel @yield 显示带有 HTML 标签的内容

java - 使用 hdmi 同时显示不同布局的 Android 应用程序

laravel - 如何在Blade(Laravel 5)中扩展多个模板?

php - View 和 View :make? 有什么区别

php - 在维护 View 页面下显示站点,了解laravel应用程序中的所有错误/异常

javascript - 如何将 Hotjar 代码插入 Laravel 项目?