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);
}