Php 如何在Laravel中静态使用布局?

Php 如何在Laravel中静态使用布局?,php,css,layout,laravel,Php,Css,Layout,Laravel,作为一名管理员,我可以创建页面(不要认为我必须将我的adminspagescontroller粘贴到这里,因为您了解其逻辑)。我一直坚持的是选择,尤其是使用页面的布局 i、 e.我有三种布局: 带有左侧边栏的页面 带有右侧边栏的页面 全宽页面(无侧边栏) 也就是说,我想创建一个salespage左右,它使用布局“全宽页面”。在我看来,这怎么能称之为 现在,我的所有视图都以@extends('layouts.path.file')开头。一种方法是使用视图生成器定义要使用的当前布局。视图生成器设

作为一名管理员,我可以创建页面(不要认为我必须将我的
adminspagescontroller
粘贴到这里,因为您了解其逻辑)。我一直坚持的是选择,尤其是使用页面的布局

i、 e.我有三种布局:

  • 带有左侧边栏的页面
  • 带有右侧边栏的页面
  • 全宽页面(无侧边栏)
也就是说,我想创建一个salespage左右,它使用布局“全宽页面”。在我看来,这怎么能称之为


现在,我的所有视图都以
@extends('layouts.path.file')开头。
一种方法是使用视图生成器定义要使用的当前布局。视图生成器设置可由您的所有视图(“*”)或某些视图(“users.profile”、“admin.profile”)使用的变量,因此这是使用用户特定布局的示例:

View::composer('*', function($view)
{
    $view->with('userLayout', Auth::check() ? Auth::user()->layout : 'main');
});
在您看来,您只需:

@extends('layouts.'.$userLayout);
如果您只需要在控制器上选择一个页面,可以将布局传递给它:

return View::make('myview')->with('layout', 'front.main');
并在您的视图中使用它:

@extends('layouts.'.$layout);
如果你把它放在桌子上,你可以把它传下去:

$layout = Pages::first()->layout;

return View::make('myview')->with('layout', $layout);
或者在你的作曲家身上做同样的事

View::composer('*', function($view)
{
    $layout = Pages::first()->layout;

    $view->with('layout', $layout);
});
很多人也喜欢在控制器中设置布局,因此您可以在控制器中执行以下操作:

public function showProfile()
{
    $this->layout = Pages::first()->layout;

    $this->layout->content = View::make('user.profile');
}

您的视图不必再@扩展布局,因为您已经告诉他们要使用哪个布局。

好的,我想我理解这一点。但我的问题是。在创建页面时,如何传递此信息?i、 我的页面表有一列“layout”,它的值是“layouts.front.main”,我如何使用它呢?对不起,我不知道正确的术语。不确定我是否完全理解它。您说您有一个pages表,但如何从该表中获取记录?不得不猜测,所以添加了更多的方法。关于你的评论,这正是StackOverflow要求人们展示代码的原因,因为猜谜游戏有时对任何人都没有帮助;返回视图::make('myview')->带有('layout',$layout)@扩展($layout)我必须说这是一个非常糟糕的设计。你上次的编辑帮了我很多忙:)我知道这就是为什么如此要求人们显示代码,但我一直试图在互联网上找到关于这方面的任何东西,但我找不到正确的东西。如果我粘贴了一些代码,那对你或其他人都没有帮助,因为它无法理解我想要什么。下次我会先尝试写一些代码。无论如何谢谢你@antonio!正如itachi漂亮地说的,有些设计很糟糕。我不确定你是否应该按照你现在的方式做事,但我试图回答你的问题,让你了解Laravel,了解它是如何工作的,而不是试图在这里实现一个伟大的设计。而且,这并不是一个讨论设计问题的论坛,而是一个讨论编码问题的论坛。我很高兴它已经在起作用了。:)如果你认为一个问题是离题的,那么-呃-不要这样做!如果您不确定,请选择适当的聊天室并询问。这就是说,这是一个具体的、有针对性的问题,所以我认为这是可以的。@halfer我最后的选择是,如果网络上没有其他东西可以帮助我的话,我总是去。首先检查以前的/相关的问题等,然后如果我找不到任何东西就提问。那太好了-如果你之前做过研究,我认为问题不必以代码为特征。不过,我认为有一个(相当好的)规则,大多数问题都应该有代码,因为没有代码的问题通常在这里“编程不够”。