laravel中的blade模板

blade模板引擎
1Blade模板引擎简介以及模板继承的使用
@1 Blade是laravel提供的一个既简单又强大的模板引擎
@2 和其他流行的PHP模板引擎不一样,Blade并不限制
你在视图(view)中使用原生PHP代码
@3 所有的Blade视图页面都将被编译成原生PHP代码并
缓存起来,除非你的模板文件被修改了,否则不会重新编译
1.1模板继承
section()
yield()
@section和@yield的区别
@section既可以单独显示父模板的默认内容,也可以单独显示子模板的新内容,
通过@parent还可以同时显示父子模板中的内容


而@yield只能显示其中一个,子模板不定义,就用父模板默认的,子模板定义,
父模板的内容会被覆盖,通过@parent也不能显示。
在控制器中写方法
    public function section1()
    {
        return view('student.section1');
    }


@extends用来继承使用
extends
parent


layouts模板


<!DOCTYPE html>


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轻松学会Laravel - @yield('title') </title>
    <style>
        .header{
            width: 1000px;
            height: 150px;
            margin: 0 auto;
            background: #f5f5f5;
            border: 1px solid #ddd;
        }
        .main{
            width: 1000px;
            height: 300px;
            margin: 0 auto;
            margin-top: 15px;
            clear: both;
        }
        .main .sidebar{
            float: left;
            width: 20%;
            height: inherit;
            background: #f5f5f5;
            border: 1px solid #ddd;
        }
        .main .content{
            float: right;
            width: 75%;
            height: inherit;
            background: #f5f5f5;
            border: 1px solid #ddd;
        }


        .footer{
            width: 1000px;
            height: 150px;
            margin: 0 auto;
            margin-top: 15px;
            background: #f5f5f5;
            border: 1px solid #ddd;
        }
    </style>


</head>
<body>
<div class="header">
    @section('header')
    头部
    @show
</div>
<div class="main">
    <div class="sidebar">
        @section('sidebar')
        侧边栏
        @show
    </div>
    <div class="content">
        @yield('content','主要内容区域')
    </div>
</div>
<div class="footer">
   @section('footer')
    底部
    @show
</div>
</body>


</html>




具体的继承使用
@extends ('layouts')
@section('header')


    @parent
    header
@stop


@section('sidebar')


    @parent
    sidebar
@stop


@section('content')
    content
@stop




2.基础语法以及include的使用


@1 模板中输出变量
@2 模板中调用PHP代码
@3 原样输出
@4 模板中的注释
@5 引入子视图include的使用 
    <!--1.模板中输出php变量-->
    <p>{{ $name }}</p>
    <!--2.模板中调用PHP代码-->
    <p>{{ time() }}</p>
    <p>{{date('Y-m-d H:i:s',time())}}</p>


    <p>{{in_array($name,$arr)?'true':'false'}}</p>
    <p>{{var_dump($arr)}}</p>
    <p>{{isset($name) ? $name:'default'}}</p>
    <p>{{$name1 or 'default'}}</p>


    <!--3.原样输出-->
    <p>@{{$name}}</p>


    {{--4.模板中的注释  模板的注释在网页中看不到,html的可以看到--}}
    {{--5.引入子视图include--}}
    @include('student.common1',['message'=>'我是错误信息'])//可以传值


3.流程控制
if
unless//相当于if取反
for
foreach以及forelse
 @if($name == 'sean')
        I'm sean.
    @elseif($name == 'imooc')
        I'm imooc.
    @else
        Who am I?
    @endif
    <br>
    @if(in_array($name,$arr))
        ture
    @else
        false
    @endif
    <br>
    @unless($name != 'sean')
        I'm sean
    @endunless


    <br>
{{--    @for($i=0;$i<10;$i++)
        <p>{{$i}}</p>
    @endfor--}}
    {{--@foreach($students as $student)
        <p>{{$student->name}}</p>
    @endforeach


    <br>--}}
    @forelse($students as $student)
    <p>{{$student->name}}</p>
    @empty
        <p>null</p>
    @endforelse


4.模板中的URL


url() 通过路由的名称生成url


action() 通过指定控制器以及方法名生成url


route() 通过路由的别名生成url
//url跟route用的比较多,因为短用着方便


先在控制器中写方法
    public function urlTest()
    {
        return 'urlTest';
    }
然后在路由中加路由并且起别名
Route::any('url',['as'=>'url','uses'=>'StudentController@urlTest']);


三种方法
    <a href="{{url('url')}}">url()</a>
    <br>
    <a href="{{action('StudentController@urlTest')}}">action()</a>
    <br>
    <a href="{{route('url')}}">route()</a>




一般来说可以完整的写一个layouts.blade.php


@extends('common.layouts')


@section('content')
然后重写中间的


@stop



















猜你喜欢

转载自blog.csdn.net/qq_35472880/article/details/80086193