Eloquent ORM 快速指南
文章推薦指數: 80 %
Eloquent ORM 快速指南![](https://i.imgur.com/XdzoHHz.png) ## DB Facade vs Eloquent 當要進行複雜的原生SQL語. Published LinkedwithGitHub Like Bookmark Subscribe --- tags:laravel --- #EloquentORM快速指南 ![](https://i.imgur.com/XdzoHHz.png) ##DBFacadevsEloquent 當要進行複雜的原生SQL語法查詢才建議你使用DBFacade,否則一般狀況下還是使用Eloquent來進行查詢為好 DBFacade查詢完得到的會是陣列,而Eloquent查詢完得到的則是Eloquent物件 如果需要把資料陣列轉換成Eloquent是做得到的,透過QueryBuilder的hydrate(),請看以下範例: ``` $userData=DB::select('SELECT*FROMusersWHEREid>?',[$userId]); $userModels=User::hydrate($userData); ``` ##ActiveRecordPattern 任何技術宣稱有實作ActiveRecord,須具備以下三個特性 *提供與資料表互動的能力 *可代表某一筆資料列 *可自我進行持久保存 ##Eloquent *有實作ActiveRecord,是一種ORM >ORM為ObjectRelationshipManagement,即用物件關聯的方式來管理資料庫 *透過定義模型的方式,讓你輕鬆管理資料庫 *一般每一個模型都指向一個表格 ##命名慣例 ###資料表格名稱 *包含多筆資料 *首字母小寫 *複數型 *Ex:users ###模型名稱 *代表一筆資料 *首字母大寫 *單數型 *Ex:User >不按照命名慣例就要做更多的設定做為代價 ##生成模型 生成Model類別 phpartisanmake:modelTask 生成Model類別,連帶生成對應的Migration檔案 phpartisanmake:modelTask-m ##Model進階屬性 ####指定該模型要對應的表格名稱,如果沒按照命名慣例才需要提供 protected$table='新表格名稱'; ####將自定義的timestamps欄位自動轉換成Carbon型態 protected$dates=['sell_at']; ####指定表格的自定義主鍵欄位名稱 protected$primaryKey='user_id'; ####關閉主鍵的自增功能 protected$incrmenting=false; ####呈上一個,如果主鍵不是int,就需要指定類型,比如字串 protected$keyType='string'; ####關閉created_at和updated_at的自動維護 protected$timestamps=false; ####設定date型態的欄位被存進資料庫時的格式 protected$dateFormat='U'; ####修改預設的時間戳記欄位名稱 constCREATED_AT='creation_date'; constUPDATED_AT='last_update'; ####此模型需要連到其他的資料庫 protected$connection='connection-name'; ##測試範例 ``` //routes/web.php Route::get('/tasks','SiteController@showTasks'); //App\Http\Controllers\SiteController publicfunctionshowTasks(){ returnresponse()->json(Task::get())->setEncodingOptions(JSON_UNESCAPED_UNICODE); } ``` × Signin Email Password Forgotpassword or Byclickingbelow,youagreetoourtermsofservice. SigninviaFacebook SigninviaTwitter SigninviaGitHub SigninviaDropbox SigninviaGoogle NewtoHackMD?Signup
延伸文章資訊
- 1Eloquent ORM - Laravel - 為網頁藝術家創造的PHP 框架
所有的Eloquent 模型都繼承 Illuminate\Database\Eloquent\Model 。 定義一個Eloquent 模型. class User extends Model ...
- 2eloquent - Yahoo奇摩字典搜尋結果
雄辯的,有說服力的;富於表現的. Dr.eye 譯典通 · eloquent · 查看更多. IPA[ˈeləkwənt]. 美式. 英式. adj. 雄辯的;傳神達意的. 牛津中文字典. el...
- 3Eloquent ORM | Laravel 4 入門 - Tony
Eloquent ORM. Object Relational Mapping (ORM) 是一種物件和關聯對映的技術。物件指的是物件導向程式語言中的物件,關聯則是關聯式資料庫,ORM 是一個中...
- 4eloquent中文(繁體)翻譯:劍橋詞典
She made an eloquent appeal for action. 她發表了富有說服力的演講,呼籲採取行動。 The pictures were an eloquent remind...
- 5Day 28-[DB 操作] Eloquent ORM 取回資料 - iT 邦幫忙
用法. 可以把Eloquent Model想像成一個更方便的Query Builder,所以任何query builder可以操作的方法它都可以使用. 取回 ...