我深深地钟爱使用 Laravel 进行开发。笔记一
“我深深地钟爱使用 Laravel 进行开发。除了它能迅速构建应用、程序代码简洁且优雅之外,Laravel 框架本身亦是一个极具价值的学习范本。在本文中,我尝试将 Laravel 的官方文档要点整理成问答(Q&A)的形式,并力求每个概念都达到原子化的精细程度。尽管这种呈现方式可能并不适合所有读者,但倘若它能对你的学习或工作有所帮助,我将会倍感欣慰。”
应用程序名称 - @yield('title') @section('sidebar') 这是主侧边栏。 @show
<div class="container">
@yield('content')
</div>
</body>
回答:
< !-- 假设,当子文件扩展app文件时,子文件 --> 应用名称 - @yield('title') @section('sidebar') this is the master侧边栏。 @show
<div class="container">
<!-- 上方位置定义为 'content', 所有扩展 app 文件的view -->
<!-- 都可以使用 @section('content') 加入该视图需要的代码 -->
@yield('content')
</div>
</body>
# 扩展布局 下面的 Laravel 示例代码的意思是?
例子:
@extends(‘layouts.app’)
@section(‘title’, ‘页面标题’)
@section(‘sidebar’)
@parent
<p >这会附加到主侧边栏。</p>
@endsection
@section(‘content’)
这是我的正文内容。
@endsection
回答:
@extends(‘layouts.app’)
<! – @yield 会定义在布局文件的位置,而@section –>
@section(‘title’, ‘Page Title’)
@section(‘sidebar’)
@parent
<p>这是追加到master sidebar.</p>
@endsection
@section(‘content’)
这是我的正文内容。</ p>
@endsection
下面的 Laravel 示例代码的意思是?
例子:
@yield(‘内容’, View::make(‘view.name’))
答:定义了此位置’content’,并定义了默认值’view.name’页面,因此扩展了此示例的子页面都可以使用@section(‘content’)这里位置插入代码,如果子页面没有定义@section(‘content’)的话,则使用默认值’view.name’页面
下面的 Laravel 示例代码的意思是?
例子:
<?php
Route::get(‘blade’, function () {
return view(‘child’);
});
答案: 当收到请求 url ‘blade’, 回传 ‘child’ view, 可以是一个blade view
显示数据
下面的 Laravel 示例代码的意思是?
例子:
<?php
Route::get(‘greeting’, function () {
return view(‘welcome’, [‘name’ => ‘Samantha’]);
});
回答: 当收到请求 5o ‘greeting’ uri, 回传 ‘欢迎’ 查看页面, 并带着[‘name’ => ‘Samantha’], 并在查看页面可以显示 ‘name’你好, {{ $name }}
以下的 Laravel Blade 示例代码的意思是?
例子:
当前的 UNIX 时间戳是 {{ time() }}。
答案:使用blade语法,可以在{{ }}内执行任何PHP函数
显示未转义的数据
以下的 Laravel Blade 示例代码的意思是?
例子:
你好, {!! $名称!!}。
答:blade 语法默认会执行 PHP 的htmlspecialchars方法,若不希望资料经过转义,可以使用{!! !!}
渲染 JSON
以下的 Laravel Blade 示例代码的意思是?
例子:
<脚本>
var app = @json($array);
var app = @json($array, JSON_PRETTY_PRINT);
</脚本>
答案:blade,@json()默认json_encode(),默认使用JSON_HEX_TAG, JSON_HEX_APOS, JSON_HEX_AMP, JSON_HEX_QUOTflags
HTML 实体编码
下面的 Laravel 示例代码的意思是?
例子:
<?php
命名空间 App\Providers;
使用 Illuminate\Support\Facades\Blade;
使用 Illuminate\Support\ServiceProvider;
类 AppServiceProvider 扩展了 ServiceProvider
{
public function boot()
{
Blade::withoutDoubleEncoding();
}
}
答:Blade 默认会双重编码 HTML 实体,要关闭双重编码,可以在 AppServiceProvider 的 boot() 中,使用 Blade 的 withoutDoubleEncoding()
Blade 和 JavaScript 框架
以下的 Laravel Blade 示例代码的意思是?
例子:
Laravel
你好,@{{ name }}。
答:很多 JavaScript 框架也用到了任何{ }符号来表示某些语法,可以用来@告诉 Blade 不需要对{{ }}内的内容做动作,它们可以被 JS 框架解析
以下的 Laravel Blade 示例代码的意思是?
例子:
{{– Blade –}}
@@json()
@json()
答案:@json()本是Blade的一个函数,可以使用@转义Blade语法,所以在HTML上的输出会是@json()
@verbatim指令
以下的 Laravel Blade 示例代码的意思是?
例子:
@verbatim
你好,{{ name }}。
@endverbatim
答:许多由于 JS Framework来解析变数或一些语法,如果 Blade 页面内有许多的{ { }}都是要让 JS Framework 来解析的话,可以写在@verbatim指令内
控制结构
如果语句
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: