1. 程式人生 > >Laravel框架學習(路由、控制器、模型)

Laravel框架學習(路由、控制器、模型)

1、路由

Route::any('/', function () {
    return view('welcome');
});

/* 路由群組 */
Route::group(['prefix'=>'member'],function(){

	Route::any('test1', ['as'=>'center',function () {
	    /*return route('center');*/
	    return view('welcome');
	}]);

});

Route::get('info',['uses'=>'[email protected]
']);

2、控制器

<?php
namespace App\Http\Controllers;
class TestController extends Controller
{
    public function index(){
    	return view('basic1',['name'=>'哈哈']);
    }
}

3、檢視

4、模型

<?php
namespace App\Http\Controllers;
use App\Member;

class TestController extends Controller
{
    public function index(){
    	return Member::getMember();
    }
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
	public static function getMember(){
		return 'Member';
	}
}

5、使用DB façade查詢構造器操作資料庫

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;

class StudentController extends Controller
{
    //
    public function index(){
		
			//使用DB façade操作資料庫
			$bool = DB::insert('insert into student(name,age) values(?,?)',['Leroi',18]);
			var_dump($bool);
			$num = DB::update('update student set age = ? where name = ?',[20,'Leroi']);
			var_dump($num);
			$students = DB::select('select * from student');
			dd($students);
			$num = DB::delete('delete from student where id > ?',[0]);
			var_dump($num);
		

				
			//使用查詢構造器
			//簡單插入
			$bool = DB::table('student')->insert(['name'=>'Li','age'=>18]);
			var_dump($bool);
			//插入之後獲取id
			$id = DB::table('student')->insertGetId(['name'=>'LiL','age'=>28]);
			var_dump($id);
			//插入多條資料
			$bool = DB::table('student')->insert([
				['name'=>'Lpi','age'=>16],
				['name'=>'Lia','age'=>108],
			]);
			var_dump($bool);

			//更新
			$num = DB::table('student')->where('id',2)->update(['age'=>50]);
			$num = DB::table('student')->increment('age',1);
			$num = DB::table('student')->decrement('age',1,['name'=>'啦啦啦']);
			var_dump($num);

			//刪除
			$num = DB::table('student')->where('id','>=',4)->delete();
			var_dump($num);
			/////////多註釋幾個以防萬一/////////$num = DB::table('student')->truncate();
			var_dump($num);

			//獲取表的所有資料
			$students = DB::table('student')->get();
			dd($students);
			$students = DB::table('student')->orderBy('id','desc')->where('id','>=',2)->get();
			dd($students);
			//獲取結果資訊第一條
			$students = DB::table('student')->orderBy('id','desc')->first();
			dd($students);
			//多條件查詢
			$students = DB::table('student')->where('id','>',2)->where('id','<',4)->get();
			dd($students);
			$students = DB::table('student')->whereRaw('id >= ? and id < ?',[2,4])->get();
			dd($students);
			//pluck
			$names = DB::table('student')->pluck('name');
			dd($names);
			//指定鍵名
			$names = DB::table('student')->pluck('name','id');
			dd($names);
			//select
			$students = DB::table('student')->select('id','name','age')->get();
			dd($students);
			//chunk
			DB::table('student')->orderBy('id','desc')->chunk(2,function($students){
				var_dump($students);
				if (condition) {
					return false;
				}
			});

			//聚合函式
			$num = DB::table('student')->count();
			$max = DB::table('student')->max('age');
			$min = DB::table('student')->min('age');
			$avg = DB::table('student')->avg('age');
			$sum = DB::table('student')->sum('age');
		
    }
    
}
 

6、使用ORM進行資料庫操作

//模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
	//指定表名
	protected $table = 'student';
	//指定id
	protected $primaryKey = 'id';
	//是否自動維護時間戳
	public $timestamps = true;

	//指定可以批量賦值的欄位
	public $fillable = ['name','age'];
	//指定欄位不可以批量賦值
	public $guarded = [];

	public function getDateFormat(){
		return time();
	}
}
//操作
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Student;

class StudentController extends Controller
{
    public function index(){
			//使用ORM進行資料庫操作	
			//全部查詢
			$students = Student::all();
			//根據主鍵查詢
			$students = Student::find(1);
			//根據主鍵查詢,沒有則丟擲異常
			$students = Student::findOrFail(1);

			//使用查詢構造器查詢
			$students = Student::get();
			$students = Student::where('id','>',1)->orderBy('age','desc')->first();
			Student::orderBy('id','desc')->chunk(2,function($students){
				var_dump($students);
			});
			$num = Student::count();

			//使用模型新增資料
			$student = new Student();
			$student->name = '哈哈';
			$student->age  = 108;
			$bool = $student->save();
			dd($bool);
			//使用模型Create方法新增資料
			$student = Student::create(['name'=>'ico','age'=>18]);
			//firstOrCreate以屬性查詢使用者,若沒有則新增
			$student = Student::firstOrCreate(['name'=>'ipco']);
			//firstOrNew以屬性查詢使用者,若沒有則返回新的例項,若要儲存可儲存例項
			$student = Student::firstOrNew(['name'=>'ipcoooo']);
			$bool = $student->save();
			dd($bool);

			//通過模型更新資料
			$student = Student::find(1);
			$student->name = 'kitty';
			$bool = $student->save();
			var_dump($bool);
			$num = Student::where('id','>',2)->update(['age'=>41]);
			var_dump($num);

			//通過模型刪除
			$student = Student::find(1);
			$bool = $student->delete();
			//通過主鍵刪除
			$num = Student::destory(1);
			$num = Student::destory(2,3);
			$num = Student::destory([2,3]);
			$num = Student::where('id','>',1)->delete();
    }
}