laravel 프레임 워 크 모델 과 데이터베이스 기초 작업 실례 상세 설명

본 논문 의 사례 는 laravel 프레임 워 크 모델 과 데이터 베이스 기초 작업 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
laravel 은 3 대 데이터베이스 작업(DB facade[원본 찾기],조회 구조 기[Query Builder],Eloquent ORM)으로 나 뉜 다.

use Illuminate\Support\Facades\DB;
1.DB facade[원본 찾기]

$results = DB::select('select * from users where id = :id', ['id' => 1]);
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

반환 하지 않 는 값:

DB::statement('drop table users');

자동 증가 id 되 돌리 기:

$id = DB::table('users')->insertGetId(
['email' => '[email protected]', 'votes' => 0]
);
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
$num=DB::delete('delete from vipinfo where vip_ID= ?',[5]); 

2.조회 구조 기[Query Builder]
laravel 조회 구조 기 는 데이터 베 이 스 를 구축 하고 실행 하 며 문법 을 찾 는 데 편리 하고 유창 한 인 터 페 이 스 를 제공 합 니 다.pdo 매개 변수 바 인 딩 을 사용 하여 프로그램 이 sql 주입 을 면 할 수 있 도록 합 니 다.따라서 들 어 오 는 매개 변 수 는 별도의 전의 특수 문 자 를 필요 로 하지 않 습 니 다.기본적으로 모든 데이터베이스 작업 을 만족 시 킬 수 있 고 지원 하 는 모든 데이터베이스 시스템 에서 실행 할 수 있다.
(1)신규

$bool=DB::table("vipinfo")->insert(['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>"  ",'vip_fenshu'=>800]);
echo $bool; //  bool 
 //        id,   insertGetId  
 $id=DB::table("vipinfo")->insertGetId(['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>"  ",'vip_fenshu'=>800]);
 echo $id;
 //      
 $bool=DB::table("vipinfo")->insert([
    ['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>"  ",'vip_fenshu'=>800],
    ['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>"  ",'vip_fenshu'=>800],
]);
echo $bool; //  bool 

(2)수정

$bool=DB::table("vipinfo")->where('vip_ID',6)->update(['vip_fenshu'=>500]);
echo $bool;
//  
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu");//  1
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3);//  3
echo $bool;
//  
$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu");// 1
$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu",3);//  3
echo $bool;
//          
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3,['vip_name'=>'dbdibi']);//  3

(3)삭제

$num=DB::table("vipinfo")->where('vip_ID',6)->delete();//  1 
$num=DB::table("vipinfo")->where('vip_ID','>',4)->delete();//    
echo $num; //     
$num=DB::table("vipinfo")->truncate();//    ,    ,    

(4)조회

//get()      
$student=DB::table("vipinfo")->get();
 var_dump($student); 
//first()  1   
$student=DB::table("vipinfo")->first(); //        
$student=DB::table("vipinfo")->orderBy('vip_ID','desc')->first();// vip_ID    
var_dump($student); 
//where()    
$student=DB::table("vipinfo")->where('vip_ID','>=',2)->get(); //      
$student=DB::table("vipinfo")->whereRaw('vip_ID> ? and vip_fenshu >= ?',[2,300])->get(); //    
dd($student);
//pluck()    ,    get
$student=DB::table("vipinfo")->pluck('vip_name');
dd($student);
//lists()    ,            
$student=DB::table("vipinfo")->lists('vip_name','vip_ID');  //  vip_ID   
dd($student);
$student=DB::table("vipinfo")->lists('vip_name');  //     ,     0  
//select()      
$student=DB::table("vipinfo")->select('vip_name','vip_ID')->get();
dd($student);
//chunk()   n 
$student=DB::table("vipinfo")->chunk(2,function($students){ //   2 
  var_dump($students);
  if(.......) return false; //          return        
});

집합 함수 사용

//count()      
$nums=DB::table("vipinfo")->count();
echo $nums;
//max()        ,  min    
$max=DB::table("vipinfo")->max("vip_fenshu");
echo $max;
//avg()        
$avg=DB::table("vipinfo")->avg("vip_fenshu");
echo $avg;
//sum()      
$sum=DB::table("vipinfo")->sum("vip_fenshu");
echo $sum;

3.Eloquent ORM
1.소개,모델 구축 및 조회 데이터
소개:laravel 이 자체 적 으로 가지 고 있 는 Eloquent ORM 은 activeRecord 로 데이터베이스 작업 에 사 용 됩 니 다.모든 데이터 시트 는 이에 대응 하 는 모델 이 있어 데이터 시트 의 상호작용 에 사용 된다.
모델 을 만 들 고 app 디 렉 터 리 에 Student 모델 을 만 듭 니 다.즉,Student.php 입 니 다.접미사 가 필요 없습니다.

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model{
//    
protected $table= 'vipinfo';
//    
protected $primaryKey= 'vip_ID';
//  laravel    created_at,updated_at,deleted_at   
protected $timestamps= false;
//     
protected $fillable= ['id','name'];
}

Student 컨트롤 러 에 test 3 방법 을 추가 하여 경로 설정

Route::get('test3',['uses'=>'StudentController@test3']);


public function test3(){
// all()        
$studnets=Student::all();
dd($studnets);
//find()    ,      。findOrFail()              
$student=Student::find(5); //   5   
var_dump($student['attributes']);
//        ,       
$student=Student::get(); 
var_dump($student);
}

2.데이터 추가,사용자 정의 타임 스탬프,대량 할당
(1)save 방법 으로 추가
laravel 은 기본적으로 created 를 유지 합 니 다.at,updated_at 두 필드,이 두 필드 는 모두 시간 스탬프,정형 11 비트 를 저장 하기 때문에 사용 할 때 데이터베이스 에 이 두 필드 를 추가 해 야 합 니 다.이 기능 이 필요 하지 않 으 면 모델 에 속성 을 추가 하 십시오:Public$timestamps=false;현재 시간 스탬프 를 데이터베이스 에 저장 할 수 있 는 방법

protected function getDateFormat(){
  return time();
}

이렇게 하면 그 두 필드 가 필요 없다.
컨트롤 러 에 쓰기:

$student=new Student();
//    
$student->vip_name='xiaoming';
$student->vip_type='  ';
$student->vip_fenshu=900;
$bool=$student->save(); //  
echo $bool;

데이터베이스 에서 기 록 된 시간 스탬프 를 가 져 올 때 기본적으로 날짜 에 따라 포맷 된 시간 스탬프 를 가 져 옵 니 다.원래 의 시간 스탬프 를 가 져 오 려 면 모델 에 asDateTime 방법 을 추가 합 니 다.

protected function asDateTime($val){
  return $val;
}

(2)create 방법 으로 새로 추 가 될 때 모델 에 추가 해 야 합 니 다.

protected $fillable=['vip_name','vip_fenshu','vip_type'];  //         

컨트롤 러 에 쓰기:

Student::create(['vip_name'=>'mmm','vip_fenshu'=>999,'vip_type'=>'  ']);

이렇게 하면 새로 성공 할 수 있 습 니 다!
(3)firstOrCreate()속성 으로 기록 찾기,없 으 면 추가

$student=Student::firstOrCreate(['vip_name'=>'mmm']);
echo $student;

(4)firstOrNew()는 속성 으로 기록 을 찾 습 니 다.없 으 면 새로운 인 스 턴 스 를 만 듭 니 다.저장 이 필요 하 다 면 save 방법 을 사용 하 십시오()

$student=Student::firstOrNew(['vip_name'=>'mmm']);
$student->save();
echo $student;

3.  데이터 수정
save 방법 으로 모델 업데이트
update 방법 으로 데 이 터 를 업데이트 합 니 다(create 와 대응 하 는 Eloquent 모델 류 는 update 방법 으로 데 이 터 를 업데이트 하 는 것 도 지원 합 니 다.대량 할당 도 사용 합 니 다)

//        
$student=Student::find(2);
$student->vip_fenshu=10000;
$student->save(); //  bool 
//         
$num=Student::where('vip_ID','>',2)->update(['vip_fenshu'=>2000]);
echo $num; //       

4.  데이터 삭제

//(1)        
$student=Student::find(11);
$student->delete(); //  bool 
//(2)      
$num=Student::destroy(10); //     10     
echo $num; //       
$num=Student::destroy(10,5); //       $num=Student::destroy([10,5]);
echo $num; //       

비디오 자원 학습 참고:http://www.imooc.com/learn/697
Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기