- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Laravel 5 框架入门(三)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本篇教程中,我们将利用 Laravel 5 自带的开箱即用的 Auth 系统对我们的后台进行权限验证,并构建出前台页面,对 Pages 进行展示.
1. 权限验证 。
后台地址为 http://localhost:88/admin ,我们的所有后台操作都将在此页面或其子页面下进行。利用 Laravel 5 提供的 Auth,我们只需要改动很少部分的路由代码便可以实现权限验证功能.
首先,将路由组的代码改为:
。
。
上面代码中只有一处变化:给 `Route::group()` 的第一个参数(一个数组)增加了一项 `'middleware' => 'auth'`。现在访问 http://localhost:88/admin ,应该会跳转到登陆页面。如果没有跳转,也不要惊慌,从右上角退出,重新进入即可.
我们的个人博客系统并不想让人随便注册,下面我们将改动部分路由代码,只保留基本的登录、注销功能.
删掉:
。
。
增加:
。
。
带有权限验证的最小化功能的后台已经完成,这个后台目前只管理 Page(页面)这一种资源。接下来我们将构建前台页面,把 Pages 展示出来.
2. 构建首页 。
先整理路由代码,将路由的最上面的两行:
。
改成:
。
。
。
我们将直接使用 HomeController 来支撑我们的前台页面展示.
此时可以删除 learnlaravel5/app/Http/Controllers/WelcomeController.php 控制器文件和 learnlaravel5/resources/views/welcome.blade.php 视图文件.
修改 learnlaravel5/app/Http/Controllers/HomeController.php 为:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
namespace
App\Http\Controllers;
use
App\Page;
class
HomeController
extends
Controller {
public
function
index()
{
return
view(
'home'
)->withPages(Page::all());
}
}
|
控制器构造完成.
`view('home')->withPages(Page::all())` 这句话实现以下功能:
渲染 learnlaravel5/resources/views/home.blade.php 视图文件 把变量 $pages 传进视图,$pages = Page::all() Page::all() 调用的是 Eloquent 中的 all() 方法,返回 pages 表中的所有数据。 接下来我们开始写视图文件:
首先,我们将创建一个前端页面的统一的外壳,即 `<head>` 部分及 `#footer` 部分。新建 learnlaravel5/resources/views/_layouts/default.blade.php 文件(文件夹请自行创建):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<!DOCTYPE html>
<html lang=
"zh-CN"
>
<head>
<meta charset=
"utf-8"
>
<meta http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<title>Learn Laravel 5</title>
<link href=
"/css/app.css"
rel=
"stylesheet"
>
<!-- Fonts -->
<link href=
'http://fonts.useso.com/css?family=Roboto:400,300'
rel=
'stylesheet'
type=
'text/css'
>
</head>
<body>
<div
class
=
"container"
style=
"margin-top: 20px;"
>
@yield(
'content'
)
<div id=
"footer"
style=
"text-align: center; border-top: dashed 3px #eeeeee; margin: 50px 0; padding: 20px;"
>
©2015 <a href=
"http://lvwenhan.com"
>JohnLui</a>
</div>
</div>
</body>
</html>
|
修改 learnlaravel5/resources/views/home.blade.php 文件为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
@
extends
(
'_layouts.default'
)
@section(
'content'
)
<div id=
"title"
style=
"text-align: center;"
>
<h1>Learn Laravel 5</h1>
<div style=
"padding: 5px; font-size: 16px;"
>{{ Inspiring::quote() }}</div>
</div>
<hr>
<div id=
"content"
>
<ul>
@
foreach
(
$pages
as
$page
)
<li style=
"margin: 50px 0;"
>
<div
class
=
"title"
>
<a href=
"{{ URL('pages/'.$page->id) }}"
>
<h4>{{
$page
->title }}</h4>
</a>
</div>
<div
class
=
"body"
>
<p>{{
$page
->body }}</p>
</div>
</li>
@
endforeach
</ul>
</div>
@endsection
|
第一行 `@extends('_layouts.default')` 代表这个页面是 learnlaravel5/resources/views/_layouts/default.blade.php 的子视图。此时 Laravel 的 视图渲染系统会首先载入父视图,再将此视图中的 @section('content') 里面的内容放入到父视图中的 @yield('content') 处进行渲染.
访问 http://localhost:88/ ,可以得到如下页面:
2. 构建 Page 展示页 。
首先增加路由。在路由文件的第一行下面增加一行:
。
。
新建控制器 learnlaravel5/app/Http/Controllers/PagesController.php,负责单个 page 的展示:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
namespace
App\Http\Controllers;
use
App\Page;
class
PagesController
extends
Controller {
public
function
show(
$id
)
{
return
view(
'pages.show'
)->withPage(Page::find(
$id
));
}
}
|
新建视图 learnlaravel5/resources/views/pages/show.blade.php 文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
@
extends
(
'_layouts.default'
)
@section(
'content'
)
<h4>
<a href=
"/"
>⬅️返回首页</a>
</h4>
<h1 style=
"text-align: center; margin-top: 50px;"
>{{
$page
->title }}</h1>
<hr>
<div id=
"date"
style=
"text-align: right;"
>
{{
$page
->updated_at }}
</div>
<div id=
"content"
style=
"padding: 50px;"
>
<p>
{{
$page
->body }}
</p>
</div>
@endsection
|
全部完成,检验成果:点击首页之中任意一篇文章的标题,进入文章展示页,你会看到以下页面:
至此,前台展示页面全部完成,教程三结束.
以上所述就是本文的全部内容了,希望能够对大家学习Laravel5框架有所帮助.
最后此篇关于Laravel 5 框架入门(三)的文章就讲到这里了,如果你想了解更多关于Laravel 5 框架入门(三)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我需要开发一个简单的网站,我通常使用 bootstrap CSS 框架,但是我想使用 Gumbyn,它允许我使用 16 列而不是 12 列。 我想知道是否: 我可以轻松地改变绿色吗? 如何使用固定布局
这个问题在这里已经有了答案: 关闭 13 年前。 与直接编写 PHP 代码相比,使用 PHP 框架有哪些优点/缺点?
我开发了一个 Spring/JPA 应用程序:服务、存储库和域层即将完成。 唯一缺少的层是网络层。我正在考虑将 Playframework 2.0 用于 Web 层,但我不确定是否可以在我的 Play
我现有的 struts Web 应用程序具有单点登录功能。然后我将使用 spring 框架创建一个不同的 Web 应用程序。然后想要使用从 struts 应用程序登录的用户来链接新的 spring 应
我首先使用Spark框架和ORMLite处理网页上表单提交的数据,在提交中文字符时看到了unicode问题。我首先想到问题可能是由于ORMLite,因为我的MySQL数据库的字符集已设置为使用utf8
我有一个使用 .Net 4.5 功能的模块,我们的应用程序也适用于 XP 用户。所以我正在考虑将这个 .net 4.5 依赖模块移动到单独的项目中。我怎样才能有一个解决方案,其中有两个项目针对不同的版
我知道这是一个非常笼统的问题,但我想我并不是真的在寻找明确的答案。作为 PHP 框架的新手,我很难理解它。 Javascript 框架,尤其是带有 UI 扩展的框架,似乎通过将 JS 代码与设计分开来
我需要收集一些关于现有 ORM 解决方案的信息。 请随意编写任何编程语言。 你能谈谈你用过的最好的 ORM 框架吗?为什么它比其他的更好? 最佳答案 我使用了 NHibernate 和 Entity
除了 Apple 的 SDK 之外,还有什么强大的 iPhone 框架可供开始开发?有没有可以加快开发时间的方法? 最佳答案 此类框架最大的是Three20 。 Facebook 和许多其他公司都使用
有人可以启发我使用 NodeJS 的 Web 框架吗?我最近开始从免费代码营学习express js,虽然一切进展顺利,但我对express到底是什么感到困惑。是全栈框架吗?纯粹是为了后端吗?我发现您
您可以推荐哪种 Ajax 框架/工具包来构建使用 struts 的 Web 应用程序的 GUI? 最佳答案 我会说你的 AJAX/javascript 库选择应该较少取决于你的后端是如何实现的,而更多
我有生成以下错误的 python 代码: objc[36554]: Class TKApplication is implemented in both /Library/Frameworks/Tk.
首先,很抱歉,如果我问的问题很明显,因为我没有编程背景,那我去吧: 我想运行一系列测试场景并在背景部分声明了几个变量(我打印它们以仔细检查它们是否已正确声明),第一个是整数,另外两个字符串为你可以看到
在我们承担的一个项目中,我们正在寻找一个视频捕获和录制库。我们的基础工作(基于 google 搜索)表明 vlc (libvlc)、ffmpeg (libavcodec) 和 gstreamer 是三
我试过没有运气的情况下寻找某种功能来杀死/中断Play中的正常工作!框架。 我想念什么吗?还是玩了!实际没有添加此功能? 最佳答案 Java stop类中没有像Thread方法那样的东西,由于种种原因
我们希望在我们的系统中保留所有重大事件的记录。例如,在数据库可能存储当前用户状态的地方,事件日志应记录对该状态的所有更改以及更改发生的时间。 事件记录工具应该尽可能接近于事件引发器的零开销,应该容纳结
那里有 ActionScript 2.0/3.0 的测试框架列表吗? 最佳答案 2010-05-18 更新 由于这篇文章有点旧,而且我刚刚收到了赞成票,因此可能值得提供一些更新的信息,这样人们就不会追
我有一个巨大的 numpy 数组列表(一维),它们是不同事件的时间序列。每个点都有一个标签,我想根据其标签对 numpy 数组进行窗口化。我的标签是 0、1 和 2。每个窗口都有一个固定的大小 M。
我是 Play 的新手!并编写了我的第一个应用程序。这个应用程序有一组它依赖的 URL,从 XML 响应中提取数据并返回有效的 URL。 此应用程序需要在不同的环境(Dev、Staging 和 Pro
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!