Model通常负责在数据库中存取数据
View是应用程序中处理数据显示的部分,就是可以看得见的部分
Controller 是处理用户交互的部分 可以获取来自Model中的数据,然后输入到View中、接受View中的响应,然后做出操作
//get() 获取表中所有数据 $students = DB::table('student')->get(); //first() 获取第一条数据(随机),配合orderBy 一起使用 $students =DB::table('student')->orderBy('id','asc')->first(); //where 多条件查询 $students = DB::table('student') ->whereRaw('id >= ? and age > ?',[18,20]) ->get(); //pluck 取结果集中一列特定列,返回字符串类型 $students = DB::table('student') ->pluck('id','name','age'); //lists 按照Key=>value 对 的方式返回数组;最多两个参数,第一个参数作为value,第二个做为key。一个参数时与pluck用法一样 $students = DB::table('student') ->whereRaw('id >= ? and age > ?',[18,20]) ->lists('id','name','age'); //select() 指定查询的字段 $students = DB::table('student') ->select('id','name','age') ->get(); //chunk() 方法 指定一次返回多少条,后跟闭包(匿名函数) /*echo '<pre>'; //预格式化 DB::table('student')->chunk(2,function($students){ var_dump($students); });*/ dd($students);
Laravel 路由 //指定路由请求 Route::get('/', function () { return view('welcome'); }); Route::post('basic1',function (){ return 'post'; }); //多路由请求 Route::match(['get','post'],'multy',function (){ return 'match'; }); Route::any('multy',function (){ return 'multy'; }); //路由参数 Route::get('user/{id}',function ($id){ return 'user-'.$id; }); //路由参数 - 不固定参数名 Route::get('user/{name?}',function ($name = null){ return 'user-'.$name; }); //路由参数 - 不固定参数名 - 正则表达式 Route::get('user/{name?}',function ($name = null){ return 'user-'.$name; })->where('name','[A-Za-z]+'); //路由参数 - 不固定多参数名 - 正则表达式 - Route::get('user/{id}/{name?}',function ($id,$name = null){ return 'user-'.$id."-id-".$name; })->where(['id'=>'[A-Za-z]+','name'=>'[1-9]+']); //路由别名 Route::get('user/center',['as'=>'center', function () { return route('center'); }]); //路由群组 Route::group(['prefix'=>'member'],function (){ Route::get('user/center',['as'=>'center', function () { return route('center'); }]); Route::match(['get','post'],'multy',function (){ return 'member - match'; }); }); //路由中输出视图 Route::get('view', function () { return view('welcome'); });
模板中的url
url():通过路由名称生成url
action():通过指定控制器以及方法名生成url
route():通过路由别名生成url
<a href="{{url('url')}}">url()</a>
<br>
<a href="{{action('StudentController@urlTest')}}">action()</a>
<br>
<a href="{{route('url')}}">route()</a>
@if ($name == 'sean')
I'm sean
@elseif($name == 'imooc')
I'm imooc
@else
Who am I ?
@endif
<br>
@if (in_array($name, $arr))
true
@else
false
@endif
<br>
{{--unless == if的取反--}}
@unless($name != 'sean')
I'm sean
@endunless
@for ($i = 0; $i < 10; $i++)
<p>{{$i}}</p>
@endfor
@foreach($students as $student)
<p>{{$student->name}}</p>
@endforeach
@forelse($students as $student)
<p>{{$student->name}}</p>
@empty
<p>null</p>
@endforelse
<!-- 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>{{$name or 'default'}}</p>
<!-- 3.原样输出 -->
<p>@{{$name}}</p>
{{-- 4.模板中的注释 --}}
{{-- 5.引入子视图 include --}}
@include('student/common1',['message' => '我是错误信息'])
@extends('layouts')
@section('header')
@parent
header
@stop
@section('sidebar')
@parent
sidebar
@stop
@section('content')
content
@stop
<!DOCTYPE html>
<html lang="en">
<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;
clear:both;
margin-top:15px;
}
.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>
<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>
Blade
通过模型删除数据
$student = Student::find(11);
$bool = $student->delete();
dd($bool);
通过主键删除
$num = Student::destroy(10);
$num = Student::destroy(8,9);
$num = Student::destroy([6,7]);
$num = Student::where('id', '>', '4')->delete();
var_dump($num);
通过模型获取数据
$student = Student::find(11);
$student->name = 'kitty';
$bool = $student->save();
dd($bool);
$num = Student::where('id','>', '9')->update(
['age' => 41]
);
dd($num);
使用模型新增数据
$student = new Student();
$student->name = 'sean2';
$student->age = '20';
$bool = $student->save();
dd($bool);
$student = Student::find(8);
echo date('Y-m-d H:i:s',$student->created_at);
使用模型的Create方法新增数据
$student = Student::create(
['name' => 'imoc', 'age' => 18]
);
dd($student);
firstOrCreate(查找数据并返回 如果不存在则插入该条数据并返回)
$student = Student::firstOrCreate(
['name' => 'imoocs']
);
firstOrNew(查找数据并返回 如果不存在则返回该类的对象 调用save才得以保存)
$student = Student::firstOrNew(
['name' => 'imoocss']
);
$bool = $student->save();
dd($bool);
all
$students = Student::all();
$student = Student::find(1);
findOrFail
$student = Student::findOrFail(6);
$students = Student::get();
$student = Student::where('id', '>', '1')
->orderBy('age', 'desc')
->first();
dd($student);
echo '<pre>';
Student::chunk(2,function($students){
var_dump($students);
});
聚合函数
$num = Student::count();
$max = Student::where('id', '>', '1')->max('age');
var_dump($max);
Eloqument ORM
get
$students = DB::table('student')->get();
first
$students = DB::table('student')
->orderBy('id','desc')
->first();
dd($students);
where
$students = DB::table('student')
->where('id','>=','2')
->get();
dd($students);
$students = DB::table('student')
->whereRaw('id>=? and age>?',[1,18])
->get();
dd($students);
pluck(返回字段列)
$names = DB::table('student')
->pluck('name');
dd($names);
//lists(可以指定第二个参数作为下标)
$names = DB::table('student')
->lists('name','id');
dd($names);
//select(指定返回字段)
$students = DB::table('student')
->select('id','name','age')
->get();
dd($students );
chunk(大量数据的查询,第一个参数是每次查询条数)
echo '<pre>';
DB::table('student')->chunk(2,function($students){
var_dump($students);
if(你的条件){
return false;
}
});
新增
$bool = DB::insert('insert into student(name,age)values(?,?)',['imooc',19]);
var_dump($bool);
更新
$num = DB::update('update student set age=? where name=?',[20,'sean']);
var_dump($num);
查询
$students = DB::select('select * from student where id > ?',['1']);
dd($students);
删除
$num = DB::delete('delete from student where id>?',[1]);
var_dump($num);
新建视图
info.php
info.blade.php
输出视图
return view(''info');
return view(''member/info');
return view(''member/info),['name'=>'sean'];
路由
概念:将用户的请求转发给相应的程序进行处理
作用:建立url和程序之间的映射
请求类型:get、post、put、patch、delete
①基础路由
Route::get('basic1',function(){
return 'Hello World';
});
Route::post('basic2',function(){
return 'basic2';
});
②多请求路由
Route::match(['get','post'],'multy1',function(){
return 'multy1';
});
Route::any('multy2',function(){
return 'multy2';
});
③路由参数
Route::get('user/{id}',function($id){
return 'User-id-'.$id;
});
单字段验证:
Route::get('user/{name?}',function($name = 'sean'){
return 'User-name-'.$name;
})->where('name','[A-Za-z]+');
多字段验证:
Route::get('user/{id}/{name?}',function($id,$name = 'sean'){
return 'User-id-'.$id.'-name-'.$name;
})->where(['id'=>'[0-9]+','name'=>'[A-Za-z]+']);
④路由别名
Route::get('user/center',['as'=>'center',function(){
return route('center');
}]);
⑤路由群组
Route::group(['prefix'=>'member'],function(){
Route::get('user/center',['as'=>'center',function(){
return route('center');
}]);
Route::any('multy2',function(){
return 'member-multy2';
});
});
⑥路由中输出视图
Route::get('view', function () {
return view('welcome');
});
echo ("hello world");
知识点总结
安装Laravel
核心目录文件
路由
MVC
数据库操作
Blade模板引擎
increment('field',number) 自增
decrement('field',number) 自减
不加where条件 表中field相应字段全部修改
内容不能少于5个字!
laravel路由
路由请求:get (基础路由)可以通过浏览器访问
post(基础路由)不能通过浏览器访问
match(多请求路由),可以通过浏览器访问
any(多请求路由)可以通过浏览器访问
创建表的时候可以设定从哪个数字开始自增