1. 程式人生 > >laravel-11-laravel 模型Eloquent ORM

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