laravel基础课程---9、视图(lavarel的模板语法和tp相比怎样)
一、总结
一句话总结:
lavarel的模板语法比thinkphp好用很多:和html代码配合的更好
lavarel比tp好用太多了:比如还有广播系统,邮件系统等
隔行换色 @for($i=0;$i<=10;$i++) @if($i%2) <h1 style="background:red">{{$i}}</h1> @else <h1 style="background:blue">{{$i}}</h1> @endif @endfor
1、lavarel的视图中如何使用函数?
定界符中直接使用:{{date('Y-m-d H:i:s')}}
{{date('Y-m-d H:i:s')}} {{substr(strtoUpper(md5($pass)),10,2)}}
2、lavarel中不确定变量是否存在 如何显示?
不需用三元运算符(?:):用or关键词:{{ $name or 'Default' }}
有时候你可能想要输出一个变量,但是你并不确定这个变量是否已经被定义,我们可以用像这样的冗长 PHP 代码表达:
{{ isset($name) ? $name : 'Default' }}
事实上,Blade 提供了更便捷的方式来代替这种三元运算符表达式:
{{ $name or 'Default' }}
在这个例子中,如果 $name
变量存在,它的值将被显示出来。但是,如果它不存在,则会显示 Default
。
3、blade是什么意思?
n. 叶片;刀片
blade
英 [bleɪd] 美 [bled]
- n. 叶片;刀片,刀锋;剑
4、lavarel如何输出html代码?
比如控制器中变量是$name="<b>fsdfs</b>"
{!!$html!!}:#默认控制器中分配的HTML代码 会直接转换程 实体
5、lavarel视图如何不解析 {{}},直接实例输出?
前面加@:@{{$pass}}
6、lavarel视图中控制结构?
通过 @if, @elseif, @else 及 @endif 指令构建 if 表达式
@if (count($records) === 1) 我有一条记录! @elseif (count($records) > 1) 我有多条记录! @else 我没有任何记录! @endif
7、lavarel视图中for循环?
@for, @endfor, @foreach, @endforeach, @forelse, @empty, @endforelse
关键词都是以@开头:比如@continue,@break
@for ($i = 0; $i < 10; $i++) 目前的值为 {{ $i }} @endfor @foreach ($users as $user) <p>此用户为 {{ $user->id }}</p> @endforeach @forelse ($users as $user) <li>{{ $user->name }}</li> @empty <p>没有用户</p> @endforelse @while (true) <p>我永远都在跑循环。</p> @endwhile
8、laravel数据库中读取出来的数据是对象,怎么让它是数组?
修改config的database.php:'fetch' => PDO::FETCH_OBJ,改为 FETCH_ASSOC
/* |-------------------------------------------------------------------------- | PDO Fetch Style |-------------------------------------------------------------------------- | | By default, database results will be returned as instances of the PHP | stdClass object; however, you may desire to retrieve records in an | array format for simplicity. Here you can tweak the fetch style. | */ 'fetch' => PDO::FETCH_OBJ,
9、lavarel视图中对象的输出?
->符号:{{$value->name}}:php对象符号就是->
js一般情况下输出对象使用的是 中括号[] 或者 点.
在php中常见的对象符号
1.$this
this是指向当前对象的指针(可以看成C里面的指针)
而且this的使用同所有的php变量一样,使用时前面必须带$
2. ->
这个箭头是配合$this使用的,是php中普通对象访问对象的属性和方法的方式
如:
10、lavarel模板布局中的文件包含是怎样?
@+include:@include('public.footer')
11、lavarel模板继承中的文件替换:哪些内容适合用@yield('title')来占位?
比如标题、顶部、侧边栏等
12、lavarel循环变量(比如foreach当前循环的索引)如何实现?
比如$loop->first:当前迭代是否是循环中的首次迭代。
比如$loop->index:当前循环所迭代的索引,起始为 0。
当循环时,你可以在循环内访问 $loop 变量。这个变量可以提供一些有用的信息,比如当前循环的索引,当前循环是不是首次迭代,又或者当前循环是不是最后一次迭代: @foreach ($users as $user) @if ($loop->first) This is the first iteration. @endif @if ($loop->last) This is the last iteration. @endif <p>This is user {{ $user->id }}</p> @endforeach
13、lavarel把数据共享给所有视图如何实现?
View Facade 的 share 方法:View::share('key', 'value');
有时候可能需要共享特定的数据给应用程序中所有的视图,那这时候你需要 View Facade 的 share 方法。通常需要将所有 share 方法的调用代码放到 服务提供者 的 boot 方法中,此时你可以选择使用 AppServiceProvider 或创建独立的 服务提供者 。示例代码如下: <?php namespace AppProviders; use IlluminateSupportFacadesView; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { View::share('key', 'value'); } /** * Register the service provider. * * @return void */ public function register() { // } }
14、lavarel模板继承页面布局的两个主要关键词是什么?
@extends('layouts.app'):继承的模板
@section('title', 'Page Title'):占位区域
<!-- Stored in resources/views/child.blade.php --> @extends('layouts.app') @section('title', 'Page Title') @section('sidebar') @parent <p>This is appended to the master sidebar.</p> @endsection @section('content') <p>This is my body content.</p> @endsection