laravel框架知識總結(持續更新中...)

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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章