# Eloquent ORM Active Record Pattern 任何技術宣稱有實作Active Record,須具備以下三個特性 提供與資料表互動的能力 可代表某一筆資料列 可自我進行持久保存 Eloquent 有實作Active Record,是一種ORM ORM為Object Relationship Management,即用物件關聯的方式來管理資料庫 透過定義模型的方式,讓你輕鬆管理資料庫 一般每一個模型都指向一個表格 命名慣例 資料表格名稱 包含多筆資料 首字母小寫 複數型 Ex:users 模型名稱 代表一筆資料 首字母大寫 單數型 Ex:User 不按照命名慣例就要做更多的設定做為代價 生成模型 生成Model 類別 php artisan make:model Task 生成Model 類別,連帶生成對應的Migration檔案 php artisan make:model Task -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’; 修改預設的時間戳記欄位名稱 const CREATED_AT = ‘creation_date’; const UPDATED_AT = ‘last_update’; 此模型需要連到其他的資料庫 protected $connection = ‘connection-name’; 測試範例 //routes/web.php Route::get('/tasks','SiteController@showTasks'); //App\Http\Controllers\SiteController public function showTasks(){ return response()->json(Task::get())->setEncodingOptions(JSON_UNESCAPED_UNICODE); } 發表於 HackMD 158 讚賞 收藏 訂閱
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up