Home > Web Front-end > HTML Tutorial > laravel blade模板介绍_html/css_WEB-ITnose

laravel blade模板介绍_html/css_WEB-ITnose

WBOY
Release: 2016-06-21 08:48:54
Original
1889 people have browsed it

首先设定一个路由,路由指向了sitecontroller的test方法,这样的话,就能在url中访问这个url去到达我们想要到达的页面。app/Http/routes.php

Route::get('/test','SiteController@test');//这里我们要访问/test这个url
Copy after login

controller依然是那个controller,不过现在只有一个test访问,因为我们要测试的这个方法app/Http/Controllers/SiteController.php

class SiteController extends Controller{    public function test(){        return view('test');        //这里要显示的视图是test.blade.php    }}
Copy after login

这里是一个模板中的模板文件,可以理解为一个背景,或者一个大模板,这个模板文件的作用是将所有共性的html文件代码统一到一个文件,然后在这个文件里面插入差异性的html代码,

app/resourc/views/layout/app.blade.php

这里有几个意思:

1.laravel默认能读取views这个文件夹,默认指定了这里是存放视图的地方

2.然而layout这个文件夹是用户自己自定义建立的,也可以不建立,只是为了方便区分模板中的模板文件的这种情况,通常会叫做master或者layout

3.这个模板文件也是blade引擎的文件,所以需要blade.php后缀

< !DOCTYPE html><html><head>    <title>Laravel</title>    <!-- 新 Bootstrap 核心 CSS 文件 -->    <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"/></head><body>    @yield('content') //yield是区域,这里就是代表在当前这个位置,是一个名叫content的区域,这是blade引擎的特殊语法</body></html>
Copy after login

这个是差异性文件app/resourc/views/test.blade.php

@extends('layout.app')//extends就好像php的那个extends继承,这里也差不多意思,继承自某个文件,而layout.app是代表了layout这个目录下面的app.blade.php文件,因为laravel默认指定了views作为根目录,所以可以直接写相对路径@section('content') //section意思就是区块,这个区块跟之前的@yield区域遥相呼应,这里的意思是继承了模板中的模板layout.app之后,我知道了一个区域是叫content的,然后我要使用这个区域,所以用section来指定,指定之后,就能在这个范围内写入你需要的代码了。    <h1>hello i am test</h1>@stop //要跟一个stop来保持一致性
Copy after login

对于需要做一些复杂的模板继承,或者代码自定义app/resourc/views/layout/app.blade.php

< !DOCTYPE html><html><head>    <title>Laravel</title>    <!-- 新 Bootstrap 核心 CSS 文件 -->    <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"/></head><body>@yield('content')@yield(('footer'))  //写多一个@yield,代表多了一个区域</body></html>
Copy after login

app/resourc/views/test.blade.php

@extends('layout.app')@section('content')    <h1>hello i am test</h1>@stop@section('footer')  //用的时候也是类似使用    <script>alert('i am alert');</script>@stop
Copy after login

当需要传入变量或者数组的时候app/Http/Controllers/SiteController.php

class SiteController extends Controller{    public function test(){        $people = ['aaa','bbb','ccc'];        return view('test',compact('people')); //用compact将其转为一个包含key和value的数组,key就是people即原来的数组名字,相当于封装了一层。    }}
Copy after login

app/resourc/views/test.blade.php

@extends('layout.app')@section('content')    <h1>hello i am test</h1>    <ul>        @foreach($people as $p)//到了视图这边,获取到一个$people的数组,这个是compact封装过的那个people数组,然后进行foreach循环,@foreach也是blade引擎的语法,不过用法跟一般的foreach差不多            <li>{{$p}}</li>        @endforeach    </ul>@stop
Copy after login

本文由 PeterYuan 创作,采用 署名-非商业性使用 2.5 中国大陆 进行许可。 转载、引用前需联系作者,并署名作者且注明文章出处。神一样的少年 » laravel blade模板介绍

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template