Laravelデータベース操作

6349 ワード

Laravelデータベース操作
接続データベース:Envファイル内の構成
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=12345678

1 DB facadeオリジナルを使用してCURDを実現する:
新しいコントローラを作成します.php:
 ?",[3]);
	}
}

routesでphpにはコントローラ/メソッド(StudentControl/index)にバインドされています.
routes.php:
Route::get('student',['uses'=>'StudentController@index']);

2クエリーコンストラクタによるCURDの実装
以前のルーティングは変更されませんでした
StudentController.php:
public function index(){
		//            bool 
		DB::table('user')->insert(['username'=>'  ','password'=>sha1('123456')]);
		//            bool
		DB::table('user')->insert([
			['username'=>'  ','password'=>sha1('123456')],
			['username'=>'  ','password'=>sha1('123456')]
		]);
		//            id
		DB::table('user')->insertGetId(['username'=>'  ','password'=>sha1('123456')]);
        
        //          
		DB::table('user')->where('id',1)->update(['username'=>'  ']);
		//                               1
		DB::table('user')->where('id',1)->increment('age',2);
		//                    
		DB::table('user')->where('id',1)->decrement('age',1);
        //                  
		DB::table('user')->where('id',1)->decrement('age',1,['username'=>'  ']);
        //            
		DB::table('user')->where('id','>',16)->delete();
		DB::table('user')->truncate();  //     ,    
        //  
        // get():        
		// first():     
		// where():       
		// pluck():       
		// lists():                    
		// select():         
		// chunk():         
        dump(DB::table('user')->get());    //    
		dump(DB::table('user')->first()); //          
		dump(DB::table('user')->where('id','=',1)->get()); 
		dump(DB::table('user')->whereRaw('id = ? and username = ?',[1,'  '])->get());                 
        //       
		dump(DB::table('user')->pluck('username')); //       
		dump(DB::table('user')->lists('username','id')); //                  
		dump(DB::table('user')->select('id','username')->get());
		 //        
		DB::table('user')->chunk(2,function($student){
			dump($student);  //            
		});
        //    
        $max = DB::table('user')->max('age');
		$min = DB::table('user')->min('age');
		$avg = DB::table('user')->avg('age');
		$sum = DB::table('user')->sum('age');
		$count = DB::table('user')->count();
		
	}

3 Eloquent ORM操作データベース
使用モデル:student.php:

コントローラphp:
クエリーデータ:

新規データ:
username = '  ';
		$student->password = sha1('123456');
		$student->age = 21;
		$student->save();  //    
        //   create                    
		Student::create(
		    ['username'=>'  ','password'=>sha1('123456'),'age'=>22]
		 );
        // firstOrCreate              
		// dump(Student::firstOrCreate(['username'=>'  ']));
		// firstOrNew                
		$student = Student::firstOrNew(
			['username'=>' ']
		);
		$student->save(); //     //    bool 
    }
}

PS:saveメソッドで保存するとcreate_がないというメッセージが表示されます.atとupdate_at 2つのフィールド、この2つはデータ作成時間と修正時間で、自動的に修正され、使用したくない場合はモデルで修正できます.
Student.php:
//                 creat_at update_at
	public $timestamps = true; //  false       
      //             
  	protected function getDateFormat(){
  		return time();
  	}
  	//              
	protected function asDateTime($val){
	  	return $val;
	} 

PS:createメソッドを使用してデータを追加するには、モデルにどのフィールドを一括追加できるかを指定する必要があります.
Student.php:
	//             
	protected $fillable = ['username','password','age'];  

データの変更:
//          //    bool 
$student = Student::find(1);
$student->username = 'admin';
$student->save();  
//                       
Student::where('id','=',1)->update(
		['username'=>'  ']
);

データの削除:
//   
// 1              bool 
$student = Student::find(6);
$student->delete();
// 2                
Student::destroy(4,5);
// 3                
Student::where('id','>',7)->delete();