$data=[
"user"=>"name",
"age"=>18
];
$title="这是laravel课程";
return view("welcome",$data); //把数组$data 注入
return view("welcome")->with("user",$title); //注入一个变量
return view("welcome",compact("data","title"));
以上是三种不同的注入方式,compact 这种方法最合适。 data 等于 $data title 等于 $title
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
</html>组件&插槽
<!-- /resources/views/alert.blade.php -->
<div class="alert alert-danger">
{{ $slot }}
</div>{{ $slot }} 变量将包含我们想要注入到组件的内容。现在,我们使用 Blade 的 @component 指令构建这个组件
@component('alert')
<strong>Whoops!</strong> Something went wrong!
@endcomponent
@component('alert', ['foo' => 'bar'])
...
@endcomponentblade模版解析
{{$name}} 输出变量 $name
@{{$name}} 原样输出及解析 和 javascript框架
@verbatim 指令
如果你在模板中显示了很大一部分的 JavaScript 变量,可以将 HTML 套嵌在 @verbatim 指令中,这样就不必在每个 Blade 回显语句前面加上 @ 符号了:
@verbatim
<div class="container">
Hello, {{ name }}.
</div>
@endverbatim
{{$title or '没有'}} //当$title 为空时,显示没有
{{isset($name)?$name:xxx}} //
<h1>{{$title}}</h1>
<h1>{{$bbb or "没有"}}</h1>
<h1>@{{$bbb or "没有"}}</h1>
{{isset($title)?$title:"xxx"}}
{{!!$str!!}} 显示非转义字符#
@if($data['aaa']>60)
及格
@else
不及格
@endif
@for($i=0;$i<10;$i++)
{{$i}}
@endfor
循环
@foreach($arr as $key=>$val)
{{$val}}
@endforeach
基于foreach 来写的
@forelse($attr as $key=>$val)
{{$val}}
@empty
没有数据
@endforelse
@if( !empty($data) && $data->total())
@foreach($data as $k=>$v)
<tr>
<td class="text-center">
{{$k+1}}
</td>
<td class="text-center">
{{$v->hospital_name}}
</td>
<td class="text-center">
<a href="/clinic/countOrderList/?hospital_id={{$v->hospital_id}}" class="join_room">查看详情</a>
</td>
</tr>
@endforeach
@else
<tr>
<td colspan="6" style="color: red">
未找到相应的统计数据
</td>
</tr>
@endif
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
@for ($i = 0; $i < 10; $i++)
The current value is {{ $i }}
@endfor
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
@while (true)
<p>I'm looping forever.</p>
@endwhile
@foreach ($users as $user)
@continue($user->type == 1)
<li>{{ $user->name }}</li>
@break($user->number == 5)
@endforeach
循环变量 在循环体内有一个可用的 $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
$loop->index 当前迭代的索引 (从 0 开始计数)。
$loop->iteration 当前循环迭代 (从 1 开始计算)。
$loop->remaining 循环中剩余迭代的数量。
$loop->count 被迭代的数组元素的总数。
$loop->first 是否为循环的第一次迭代。
$loop->last 是否为循环的最后一次迭代。
$loop->even 是否是循环中的偶数迭代。
$loop->odd 是否是循环中的奇数迭代。
$loop->depth 当前迭代的嵌套深度级数。
$loop->parent 嵌套循环中,父循环的循环变量。
@php
@endphp
引入头部和底部
@include("Common.header")
页面代码放在这里
@include("Common.footer")
Common.footer 这个文件位于 Views/Common/footer.blade.php
也可以使用模版文件
建立:
layouts/home.blade.php
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
</head>
<body>
<div class="container">
<div class="content">
@yield("content");
</div>
</div>
</body>
</html>
建立:
t.blade.php
代码如下:
@extends("layouts.home");


这是@include 方法引入的。
下面来看看layouts如何使用


第二种:


具体看代码吧
layouts.home2.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
<style type="text/css">
.header{
height: 100px;
background: pink;
}
.mainer{
height: 450px;
background:palegreen;
}
.footer{
height: 100px;
background: #0066ff;
}
</style>
</head>
<body>
<div class="header">
header
</div>
@section("content")
末班
@show
<div class="footer">
footer
</div>
</body>
</html>
m3.blade.php
@extends("layouts.home2")
@section('content')
@parent
<br>
<h1>asdfasdfasdf</h1>
@endsectionLaravel如何连接数据库
修改.env配置文件
位于项目的根目录 .env

修改数据库的配置文件
<?php
public function index(){
$pdo=DB::connection()->getPdo();
dd($pdo);
$users=DB::table("user")->get();
$users=DB::table("user")->where("user_id",">",1)->get();
}
?>使用上述代码来链接数据库,这并不是全部,需要再去查看文档,看使用方法
env("DB_HOST","127.0.0.1"); 直接读取 .env 的配置文件,如果不存在DB_HOST 就返回 127.0.0.1
config("app.key"); 读取 config/app.php 文件中的 key 内容
其他blade命令:
1、如何在页面模版中声明变量
某些情况下,在视图中嵌入 PHP 代码很有用。可以在模板中使用 @php 指令执行原生的 PHP 代码块:
@php
$User_Agent=app('request')->header('User-Agent');
@endphp
{{$User_Agent}}
2、blade注释命令
Blade 也允许在视图中定义注释。不过与 HTML 注释不同,Blade 注释不会包含在返回给应用的 HTML 中:
{{-- This comment will not be present in the rendered HTML --}}3、包含文件 引入子视图
@include
@include('shared.errors')
@include('view.name', ['some' => 'data'])
@includeIf('view.name', ['some' => 'data'])
@includeWhen($boolean, 'view.name', ['some' => 'data'])
@includeFirst(['custom.admin', 'admin'], ['some' => 'data'])@include('view.name', ['some' => 'data'])
如果传递给 @include 一个不存在的视图,Laravel 会抛出错误。想要包含一个不能确定存在与否的视图,需要使用 @includeIf 指令:
@includeIf('view.name', ['some' => 'data'])
想要包含一个依赖于给定布尔条件的视图,可以使用 @includeWhen 指令:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
要包含给定视图数组中第一个存在的视图,可以使用 includeFirst 指令:
@includeFirst(['custom.admin', 'admin'], ['some' => 'data'])
应当尽量避免在 Blade 视图中使用 __DIR__ 和 __FILE__ 魔术常量,因为它们将指向缓存中经过编译的视图的位置
4、Method 域
HTML 表单不能发出 PUT、 PATCH 及 DELETE 请求,需要加入隐藏的 _method 域来模仿这些 HTTP 动词。Blade 的 @method 指令能够帮你创建这个域:
<form action="/foo/bar" method="POST">
@method('PUT')
...
</form>5、CSRF 域
只要在应用中定义了 HTML 表单,就一定要在表单中包含隐藏的 CSRF 令牌域,这样一来 CSRF 保护 中间件就能校验请求。可以使用 Blade 的 @csrf 指令生成令牌域:
<form method="POST" action="/profile"> @csrf ... </form>
6、其他指令
显示数据
Route::get('greeting', function () {
return view('welcome', ['name' => 'Samantha']);
});
就可以这样利用 name 变量显示其内容:
Hello, {{ $name }}.
不限于显示传递给视图的变量的内容,你还可以显示任一 PHP 函数的结果。实际上,你可以在 Blade 的回显语句中放置你想要的任意 PHP 代码:
The current UNIX timestamp is {{ time() }}.
默认情况下, Blade 中 {{ }} 语句自动经由 PHP 的 htmlspecialchars 函数传递以防范 XSS 攻击。如果不希望数据被转义,可以使用下面的语法:
显示非转义字符
Hello, {!! $name !!}.
渲染 JSON
<script>
var app = @json($array);
</script>
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
@foreach ($users as $user)
@if ($user->type == 1)
@continue
@endif
<li>{{ $user->name }}</li>
@if ($user->number == 5)
@break
@endif
@endforeach
@foreach ($users as $user)
@foreach ($user->posts as $post)
@if ($loop->parent->first)
This is first iteration of the parent loop.
@endif
@endforeach
@endforeach
$loop 变量还包含其它几种有用的属性:
属性描述
$loop->index当前迭代的索引(从 0 开始计数)。
$loop->iteration当前循环迭代 (从 1 开始计算)。
$loop->remaining循环中剩余迭代的数量。
$loop->count被迭代的数组元素的总数。
$loop->first是否为循环的第一次迭代。
$loop->last是否为循环的最后一次迭代。
$loop->depth当前迭代的嵌套深度级数。
$loop->parent嵌套循环中,父循环的循环变量Model类如如何使用?
php artisan make:model Article
这样来创建一个Article Model类,创建的文件默认会在根目录下。
如何去把它放在其他目录呢? 放在 app/Http/Model 这个目录下:
把 namespace 修改成对应的目录
Laravel默认以上以复数形式展现,自动的。所以要改一下表名:
protected $table=""
protected $primarykey=""
protected $timestamps=false