(02) Laravel 视图和模板

 

 

===== 视图 =====

 

32. 使用视图加载 css,blade,php 三种文件

 

33. view() 函数 return view('以.分隔的视图模板路径');

 

34. 给视图传递参数 return view('user.profile', ['id' => $id]);

 

35. 给视图传递参数 return view('user.profile', compact('id'));

 

36. 给视图传递参数 return view('home')->with('tasks', Task::all());

 

37. 给视图传递参数 return view('home', ['tasks' => Task:all()]);

 

38. 在视图间共享变量

AppServiceProvider 的 boot方法中, view()->share('siteName', 'Laravel');

 

 

 

===== Blade模板 =====

 

39. 常见三种语法 {{}}, {!! !!}, @

 

40. @的特殊作用 (不解析,跳过)

 

{{ $phpData }}// Blade 引擎会将其编译为对应的 PHP 代码

@{{ $vueData }}// Blade 引擎编译时会移除 @,保留 {{ $vueData }} 结构

 

41. 注释: {{-- 注释内容 --}} 

 

42. 条件语句: @if、@else、@elseif、@endif

 

43. 条件语句: @unless、@endunless

 

44. 判断语句: @isset、@endisset @empty、@endempty

 

45. 多分支语句: @switch、@case、@break、@default、@endswitch

 

46. 循环语句: @for、@endfor / @foreach、@endforeach / @while、@endwhile

 

47. 循环: @forelse、@empty、@endforelse

 

48. @foreach 和 @forelse 中的 $loop 变量

 

 

 

===== Blade模板和组件 =====

 

49. @yield 和 @section/@show

 

50. @yield('content') 

 

51. @section

@section('footerScripts') 

        <script src="{{ asset('js/app.js') }}"></script> 

    @show 

 

52. 通过 @extends 和 @section/@endsection 在子视图实现继承

 

53. @parent

布局文件中通过 @section/@show 定义,所以我们可以在子视图中通过 @parent 渲染布局文件中指定的默认区块内容

 

54. @include 引入其他视图组件

 

55. 通过 @each 指令循环引入单个组件 

@each('partials.module', $modules, 'module', 'partials.empty-module') 

 

    <h1>{{ $module->title }}</h1> 

 

 

56. 通过 @slot 和 @component 实现更加灵活的内容分发

 

 

 

===== view composer =====

 

57.指定视图作用域来预设共享「变量」

app/Providers/AppServiceProvider.php 的 boot 方法

view()->composer('partials.sidebar', function ($view) { 

    $view->with('posts', Post::recent()); 

});

 

58. 数组/通配符的方式指定多个视图作用域

view()->composer(['partials.header', 'partials.footer']

view()->composer('partials.*',

 

59. 抽出文件

app/Http/ViewComposers/View Composer 类 RecentPostsComposer.php

 

调用拆分出去的功能

view()->composer( 'partials.sidebar', \App\Http\ViewComposers\RecentPostsComposer::class );

 

60. blade 命令编写: AppServiceProvider 的 boot 

Blade::directive('datetime', function($expression) {

    return "<?php echo ($expression)->format('Y/m/d H:i:s'); ?>";

 

});

 

 

posted @ 2019-06-18 09:48  aocn  阅读(302)  评论(0)    收藏  举报