laravel-11-laravel 模型Eloquent ORM
使用 模型 Model處理資料的 增刪改查
Eloquent ORM 讓資料庫的操作變的超級簡單而且還安全
首先建立一個Model
預設是沒有Model資料夾的 建立的話 會生成在app根目錄下 但是當Model過多之後 就會有點恐怖了
所以我們可以自己建立一個Model資料夾
命令如下
php artisan make:model Models/Artisan
模型Model的命名規則
是和資料表相對立的
laravel的資料表命名是用下劃線+複數的形式
Model檔案命名是單數形式帕斯卡命名法 首字母大寫 駝峰命名法
比如 articles 表 Model檔名為 Article.php
user_types表的Model檔名為 UserType.php
再新建一個controller控制器 呼叫Model模型
命令
php artisan make:controller ModelController
在controller方法中
use 匯入Model
use App\Models\Article;
新建一個index方法
解釋一下 上面的程式碼
function括號中的類名和變數當引數傳給方法 這個人概念是 依賴注入 可以理解為例項化物件$articleModel,這樣理解就可以方便一點
也可以這樣
$articleModel = new Article();
$data = $articleModel->get();
或者這樣
$data = Article::get();
以上方法 獲取到的資料都是一樣的
dump()中的toarray()方法是把查詢出來的資料轉化為陣列,laravel中查出來的資料大多都是 集合 collection
在新增路由
Route::prefix('model')->group(function(){ Route::get('index', '[email protected]'); })
訪問 域名+model/index
接下來說 插入資料 正常流程是 html表單提交到php檔案 處理插入到資料庫
模型中有一個create()方法就是用來新增資料的 當然你也可以直接insert into 這樣的話 就沒有框架的意義了
新建一個方法和路由 store
上面的store方法 是物件呼叫了一個insert()方法 這個方法是我封裝在Model檔案中的 當然也可以直接在控制器中執行(下邊會有舉例),但是不提倡
看一下 Model檔案中的insert方法
解釋 create()方法預設返回的是插入的資料內容 後邊加 ->id 就是隻返回id
訪問 域名+model/store
會報錯 因為要在模型中先定義允許 create方法插入的欄位
如上圖可以二選一的 一般插入欄位過多 就用第二種
檢視資料庫
通過 模型插入的資料 會自動插入 新增時間和 修改時間 之前說過建立表結構時
接下來 修改資料 新建方法 新增路由 update 修改id為5的資料
訪問 執行
最後 是刪除 laravel自帶有回收站刪除 軟刪除 刪除之後可以恢復,但是資料庫表中需要deleted_at欄位,,之前也說過 建立表遷移時,呼叫 SoftDeletes
完了 要開啟軟刪除功能,
模型 預設沒有開啟
在模型中 use 匯入 SoftDeletes;
完了 再在Model類中開啟功能
新建方法 新增路由
完全刪除資訊 方法
開啟軟刪除後 實現回收站功能 恢復軟刪除的方法restore()
開啟軟刪除後的查詢 查詢包含軟刪除的資訊 用 withTrashed()方法
只查被軟刪除的資訊 onlyTrashed()方法
以上就是 Model模型的Eloquent ORM