Justin's Words

Laravel 笔记 (一)

9 月份一个同学叫我帮他做一个家教网站,我答应下来了。前端页面不复杂,很快就完成了,因为后端语言中我对 PHP 最熟悉,于是就决定用 PHP 来开发,听说 Laravel 名声不错,于是就直接上手 Laravel

Laravel中文官网,里面文档很详细,不懂可以去查文档。

Laravel 链接 css 和 _js_ 这些都以 public 文件夹为当前路径,务必注意。

本篇讲 HTML 函数 和 Blade

HTML

Laravel 使用 { {}} 双大括号来简化 <?= ?>,在数据注入时非常有用,不过如果你同时用 AngularJS 就得注意,因为 AngularJS 依赖注入用的也是双大括号,这时候你就只能用 <?php ?> 了。

一些 HTML 简化函数:

  • HTML::entities('<h1>Hello</h1>')e('<h1>Hello</h1>') 转码
  • HTML::decode('&amp;lt;h1&amp;gt;Hello&amp;lt;/h1&amp;gt;') 解码
  • HTML::script('path/to/js') 生成 <script src='path/to/js'></script>,第二个参数可以以数组的形式添加属性,如 HTML::script('path/to/js', array('async' => 'async))
  • HTML::style('path/to/css') 生成 <link media=\"all\" type=\"text/css\" rel=\"stylesheet\" href=\"path/to/css\">,第二个参数作用如上
  • HTML::image('path/to/image'),第二个参数作为 alt 属性值,无则为空,第三个参数作用如上
  • HTML::link('http://example.com'),第二个参数为 TextNode,第三个参数作用如上
  • HTML::secureLink('x) 这个将会生成 <a href=\"https://your.url/x\"></a>,也就是 https 加密链接
  • HTML::linkRoute('login) 给链接指定一个命名的路由,查看命名路由的文档
  • HTML::linkAction('Home@index') 给链接指定控制器和方法,首先你得在 route.php 中已经设置好路由了,查看基本控制器文档
  • HTML::mailto('a@b.c') 生成邮箱地址链接,第二个参数为 TextNode,第三个参数为数组设定属性
  • HTML::ol(array('a', 'b', 'c')) 生成有序列表,也就是 ol>li,你甚至可以在数组中再嵌套数组生成子列表,第二个参数为数组设定属性
  • HTML::ul(array('a', 'b', 'c')) 生成无序列表,也就是 ul>li

Blade

LaravelMVC 式框架,BladeLaravel 视图 (View) 的形式,视图在 app/views 文件夹下

例子: app/views/layoutsdefault.blade.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html lang="zh_CN">
<head>
@include('includes.head')
@yield('customStyleAndTitle')
</head>
<body>
<div class="page-wrapper">
@yield('mainContent')

@include('includes.footer')
</div>

@include('includes.scripts')

@yield('customScript')
</body>
</html>

以上是一个默认模板,套用如下: 这里使用 ‘.’ 作为路径表现形式 views/pages/home.blade.php

1
2
3
4
5
6
7
8
9
@extends(layouts.default)

@section('customStyleAndTitle)
<title>Hello world</title>
@stop

@section('mainContent')
<h1>Hello world</h1>
@stop

基本就是这样。

app/views 下面的文件树我建议是这样:

1
2
3
4
5
6
7
8
views
includes
head.blade.php
footer.blade.php
layouts
default.blade.php
views
home.blade.php

主要是为了管理明了,复杂的网站下面文件树就相应的复杂。

第一部分完。