首先,您必须找到一个模板或自己创建一个。我将假设您将使用 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>
菜单的工作原理
在你的应用目录中创建一个新文件(与routes.php同级)并命名为composers.php
-
打开app/start/global.php并放在文件末尾
require app_path().'/composers.php';
这样composers.php 文件中的代码将在每次调用中触发。
在composer.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 会触发PostsController中的index函数
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 等)
让您的代码符合模板样式表