1.先安装composer,然后通过composer 根据php适配性安装合适的版本。
安装5.2版本示例: composer create-project laravel/laravel=5.2.* --prefer-dist D:/MYTEST/laravel_blog
2.路由的分类以及使用方法 demo
<?php
Route::get('/', function () {
return view('welcome');
});
//基础路由
Route::get('basic1',function (){
return 'Hello Word3';
});
Route::post('basic2',function(){
return 'post qingqiu';
});
//多请求路由
Route::match(['get','post'],'basic11',function(){
return 'basic11';
});
Route::any('basic22',function (){
return 'basic22';
});
//路由参数
Route::get('user/{id}',function($id){
return 'User-id-'.$id;
})->where('id','[0-9]+');
Route::get('user/{name?}',function($name='jake'){
return 'User-name-'.$name;
})->where('name','[a-zA-Z]+');
Route::get('user/{id}/{name?}',function($id,$name='unknow'){
return 'User-id-' . $id.'---name-' . $name;
})->where(['id'=>'[0-9]+','name'=>'[a-zA-Z]+']);
//路由别名
Route::get('user/member-center',['as'=>'center',function(){
return route('center');
}]);
//路由群组
//---例:/member/user/344 多一层才能访问到群组里的地址
Route::group(['prefix'=>'member'],function(){
Route::get('user/{id}',function($id){
return 'member--User-id-'.$id;
})->where('id','[0-9]+');
});
//路由中输出视图
Route::get('welcome/index', function () {
return view('welcome');
});
3.控制器(命名空间/命名规则/向视图传值) demo
<?php
namespace App\Http\Controllers;
class MemberController extends Controller
{
public function info($id)
{
return view('member/info',[
'name'=>'jake',
'age'=>20
]);
}
}
4.视图(接收数据) demo
member/info blade
姓名 :{{$name}}
年龄 :{{$age}}
5.使用DB facade 实现增删改查 demo
public function test1(){
//使用DB facade 实现增删改查
//新增(返回布尔值)
/* $re=DB::insert('insert into student(name,age) values(?,?)',['imooc',20]);
var_dump($re);*/
//查询
/* $students=DB::select('select * from student');
dd($students);*/
/* $students=DB::select('select * from student where id>?',[1001]);
dd($students);*/
//更新(返回受影响行数)
/*$re=DB::update('update student set age =? where name =?',['35','jake']);
var_dump($re);*/
//删除(返回删除的条数)
/*$re=DB::delete('delete from student where id>?',[1001]);
dd($re);*/
}
6.使用查询构造器进行数据操作 demo
public function query1(){
//使用查询构造器新增数据
//---新增 (返回布尔值)
/*$bool=DB::table('student')->insert(['name'=>'imooc','age'=>18]);
var_dump($bool);*/
//---新增 (返回新增记录的id)
/* $insertid=DB::table('student')->insertGetId(['name'=>'david','age'=>34]);
var_dump($insertid);*/
//---批量新增(返回布尔值)
$bool=DB::table('student')->insert([
['name'=>'name1','age'=>20],
['name'=>'name2','age'=>21],
]);
var_dump($bool);
}
public function query2(){
//使用查询构造器更新数据
//更新 (返回受影响的行数)
/*$re=DB::table('student')->where('id',1009)->update(['age'=>200]);
var_dump($re);*/
//自增 (返回受影响的行数)
// $re=DB::table('student')->increment('age');//age自增1
// $re=DB::table('student')->increment('age',3);//age自增3
//自减 (返回受影响的行数)
// $re=DB::table('student')->decrement('age');//age自减1
$re=DB::table('student')->where('id',1009)->decrement('age',3);//age自减3
var_dump($re);
}
public function query3(){
//使用查询构造器删除数据
//删除 (返回删除的行数)
// $re=DB::table('student')->where('id',1010)->delete();
/* $re=DB::table('student')->where('id','>=',1010)->delete();
var_dump($re);*/
//truncate 清空表 (无返回值)
DB::table('student')->truncate();
}
public function query4(){
//使用查询构造器查询数据
//get()
//$re=DB::table('student')->get();
//first 获取结果集中的第一条数据
//$re=DB::table('student')->first();
// $re=DB::table('student')->orderBy('id','desc')->first();
//where
/* $re=DB::table('student')
->where('id','>=',12)
->get();*/
//多个条件查询
/* $re=DB::table('student')
->whereRaw('id>=? and age > ?',[10,20])
->get();*/
//pluck 返回结果集中指定的字段对应的值
/* $re=DB::table('student')
->whereRaw('id>= ? and age>?',[10,20])
->pluck('name');*/
//lists 返回结果集中指定的字段对应的值(可以指定返回数组的下标)
/* $re=DB::table('student')
->whereRaw('id>= ? and age>?',[10,20])
->lists('name','id');//指定id为返回数组的下标*/
//select
/* $re=DB::table('student')
->select('id','name','age')
->get();*/
//dd($re);
//chunk //每次查询n条记录,不停的查询,直到查询所有记录或者 遇到 return false
echo '<pre>';
$re=DB::table('student')->chunk(2,function($re){
var_dump($re);
return false;
});
}
public function query5(){
//聚合函数
/*$re=DB::table('student')->count();*/
//$re=DB::table('student')->max('id');
//$re=DB::table('student')->min('id');
//$re=DB::table('student')->sum('age');
$re=DB::table('student')->avg('age');
var_dump($re);
}
7.使用Eloquent ORM 进行数据操作(推荐)
public function orm1()
{
//all() 查询所有
// $re=Student::all();
//查询一条
//find()
// $re=Student::find(10);
//findOrFail() 根据主键进行查找,如果没有就报错
// $re=Student::findOrFail(104);
//$re=Student::get();
/* $re=Student::where('id','>',12)
->orderBy('age','desc')
->first();*/
//dd($re);
/* Student::chunk(2,function($result){
var_dump($result);
});*/
//聚合函数
// $re=Student::count();
// $re=Student::sum('age');
// $re=Student::avg('age');
// $re=Student::max('age');
$re=Student::min('age');
var_dump($re);
}
public function orm2()
{
//使用模型新增数据
/* $student=new Student();
$student->name='tes11';
$student->age=22;
//save() 返回布尔值 [此方法自动维护表中的created_at 和 updated_at字段]
$re=$student->save();
dd($re);*/
/* $re=Student::find(16);
echo $re->created_at;*/
//使用模型新增数据
/*$re=Student::create(['name'=>'imooc','age'=>18]);
dd($re);*/
//firstOrCreate() 根据属性查找信息,如果没有,则新增,并返回新的实例
/*$rs=Student::firstOrCreate(
['name'=>'imoocss33']
);*/
//firstOrNew() 根据属性查找信息,如果没有,则返回新的实例,如果需要新建保存该记录,则使用save()
$rs=Student::firstOrNew(
['name'=>'imoocssssd']
);
$rs->save();
// dd($rs);
echo '<pre>';
var_dump($rs);
}
public function orm3()
{
//通过模型更新数据
/*$student=Student::find(39);
$student->name='name_who';
$bool=$student->save();
var_dump($bool);*/
$num=Student::where('id','>=','40')->update(['age'=>41]);
var_dump($num);
}
public function orm4()
{
//通过模型删除数据
/* $student=Student::find(22);
$bool=$student->delete();
var_dump($bool); */
//通过主键删除
// $num=Student::destroy([42,43]);//删除id是 42,43的记录
// $num=Student::destroy(40,41); //删除id是 40,41的记录
$num=Student::where('id','>',17)->delete();
var_dump($num);
}