今天要介紹的是Eloquent ORM這個函數,
他是laravel中實現orm模型的一個方法,
而甚麼是ORM以下是WIKI中對他的定義,
物件關聯對映(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程式設計技術,用於實現物件導向編程語言裡不同類型系統的資料之間的轉換。從效果上說,它其實是創建了一個可在編程語言裡使用的「虛擬對象資料庫」。如今已有很多免費和收費的ORM產品,而有些程式員更傾向於創建自己的ORM工具。
物件導向是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關聯式資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,
簡而言之就是它是一套簡易使用的資料庫系統,
他可以在支援的資料庫類型下,
使用物件的方式去做到資料庫的增刪修查,
而不用知道說SQL是如何去組出來,
我們只要很直覺地去判斷說我們要怎麼樣去處理他,
這樣即可以達到我們要的目的了。
接下來我們要介紹怎麼去使用這個模型,
首先要先確定 app/config/database.php 有設定好資料庫連線,
接著我們要在app/models中產生一個檔案Users.php的檔案,
接著我們在裡面輸入以下程式碼,
class User extends Eloquent {}
可是你可會有疑問說為什麼我們沒有指令要使用的資料表名稱,
這是因為在laravel中預設的就是他會用CLASS的複數小寫為使用的資料表名稱,
但是如果你今天並不是樣這樣使用的話,你也可以自行設定要指定的資料表名稱,
class User extends Eloquent {
protected $table = 'my_users';
}
我們這邊一樣以新增修改查詢刪除為主,
取得所有的資料
$users = User::all();
$user = User::find(1);
$users = User::where('votes', '>', 100)->take(10)->get();
新增
$user->name = 'John';
$user->save();
修改
$user = User::find(1);
$user->email = 'john@foo.com';
$user->save();
刪除一存在的模型資料
$user = User::find(1);
$user->delete();
單純更新時間戳
$user->touch();
以上就是新增修改查詢刪除的方法,
但是在刪除中我們很多時候會希望資料不要真的刪掉,
所以我們可以開啟微刪除的功能,
如以下所示:
class User extends Eloquent {
protected $softDelete = true;
}