我刚刚开始使用Laravel,所以请耐心等待。
我正在尝试使用left content pane
以及middle content pane
和right content pane
来制作某种CMS,你可能都知道......
这是描述我的目标的图像:
我的问题是:我怎样才能以漂亮,美观的方式实现这一目标?我在路线文件中需要做什么以及我的控制器如何?
我已经按照Laracast的基本教程进行了操作,所以我知道基础知识,但这都是......
我真的希望有人可以帮助我(或指向正确的方向)。因为我想在开始时以正确的方式做到这一点,而不是在6个月之后......
答案 0 :(得分:1)
首先,你必须找到一个模板或自己创建一个模板。我将假设您将使用Bootstrap,因此请查看this link以获取一个漂亮的仪表板模板。如果您使用谷歌,您可以找到更多(免费或付费)。所以你终于找到了你的模板!下一步你要怎么做?我告诉你我的做法。
打开您下载的模板并剥离所有内容而不触及位置。例如,在模板中,主菜单可能会放在div中,如:
<div class="left-side">
<ul class="menu">
<li>...</li>
<li>...</li>
</ul>
</div>
剥离<ul>
,然后只留下<div>
。在那里,您将放置您的菜单(您稍后会看到如何)。
在完成所有职位之后你会有这样的事情:
<div>
<div class="left-side"></div>
<div class="main-content"></div>
</div>
当然,它会远不止于此,但你明白了。这是您的主布局。在视图中创建一个文件夹,例如layouts
并将其保存为master.blade.php
。
现在再次打开并将其更改为:
<div>
<div class="left-side">@include('partials.menu')</div>
<div class="main-content">@yield('content')</div>
</div>
菜单如何工作
在您的app目录中创建一个新文件(与routes.php相同),并将其命名为composers.php
打开app/start/global.php
并在文件位置的末尾
require app_path().'/composers.php';
这样,每次通话都会触发composers.php
文件中的代码。
在composers.php中编写以下代码:
View::composer('layouts.master', function($view){ // Just a sample. Get all menu items from the database $menus = Menu::all() ; // This way $menus will always be available in your master.blade.php $view->with('menus', $menus); });
partials
,并在该文件夹中创建menu.blade.php
。现在打开menu.blade.php
并输入以下代码:
<ul>
@foreach($menus as $menu) <li>{{ $menu->title }}</li> @endforeach
</ul>
您的菜单已准备就绪!
当然,您需要实现更多逻辑,例如我们的菜单突出显示等,但这将帮助您入门。
主要内容如何运作
要使您的内容显示在主区域中,您的所有视图都必须扩展主布局。假设您有以下路线:
Route::resource('posts', 'PostsController');
致电例如h ** p://www.example.com/posts将触发index
PostsController
功能
class PostsController extends BaseController {
public function index()
{
$posts = Post::all();
return View::make('posts.index', compact('posts'));
}
}
然后将调用views/posts/index.blade.php
文件
@extends('layouts.master')
@section('content')
@foreach($posts as $post)
<p>{{ $post->content}}</p>
@endforeach
@stop
传递$ menus变量并将其放在主布局中。
我希望这会让你开始,我也希望我的代码中没有任何拼写错误!
并且不要忘记,如果是现成的模板,则必须
自己照顾资产管理(.css,.js等)
让您的代码符合模板样式表