用品

什麼是 Laravel Eloquent,如何使用它,帶示例的教程

Laravel PHP 框架包括 Eloquent Object Relational Mapper (ORM),它提供了一種與數據庫通信的極其簡單的方法。 

Laravel 和 Eloquent 有助於加快應用程序和平台的開發,為大多數問題提供充分的解決方案。 通過更快的開發以及組織良好、可重用、可維護和可擴展的代碼來滿足需求。 

Eloquent 如何運作

開發人員可以在 Eloquent 使用 ActiveMethod 實現有效地處理多個數據庫。 它是一種架構模式,其中在模型-視圖-控制器 (MVC) 結構中創建的模型對應於數據庫中的表。 優點是模型可以執行常見的數據庫操作,而無需編寫長 SQL 查詢。 模板允許您查詢表中的數據並將新記錄插入表中。 簡化了同步在不同系統上運行的多個數據庫的過程。 您不需要編寫 SQL 查詢。 你所要做的就是 defi完成數據庫表以及它們之間的關係,Eloquent 將完成剩下的工作。

Laravel 準備

欣賞 Eloquent ORM 的實用性,並了解生態系統是必須的。 開始步驟:

  1. 從 getcomposer.org 安裝 Laravel,按照此處的說明進行操作
  2. 創作 migration 使用控制台 Artisan
  3. 創建模板 eloquent
  4. 跑我 seed 數據庫的

Artisan Console 是 Laravel 中包含的命令行界面的名稱。 提供一組有用的命令,供您在開發應用程序時使用。 它由強大的組件驅動 Symfony Console.

要查看所有可用的 Artisan 命令的列表,您可以使用 list 命令:

php artisan list

所有命令都帶有對其參數和選項的簡明描述。 這顯示在“幫助”屏幕中。 要顯示幫助屏幕,只需在命令名稱前加上“help”,如下所示:

php artisan help migrate

Migration

遷移是通過編寫 PHP 代替數據庫管理過程 SQL. 提供一種向數據庫添加版本控制的方法。 

要創建遷移,只需運行以下命令:

php artisan make:migration create_student_records

這將創建遷移文件。 在您的文本編輯器中,打開您剛剛在文件夾中創建的文件 database\migrations:

<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

class CreateStudentRecordsTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('student__records', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('student__records');
    }
}

代碼是一個同名的類'create student records',並且有兩種方法:向上和向下。 up 方法應該對數據庫進行更改; 因此,無論何時遷移數據庫,都會執行 up 方法中的任何代碼。 另一方面,down 方法應該回滾那些數據庫更改; 所以每當你運行 rollback migration, down 方法應該撤消 up 方法所做的事情。 方法內部 up 有用於創建和操作表的架構構建器。 如果您取消某些遷移會怎樣? 您所要做的就是執行以下命令:

php artisan migrate:rollback

他會收集最後一個 migration 已實施。 此外,您可以通過運行以下命令完全恢復數據庫:

php artisan migrate:reset

這將取消您的所有遷移。

Defi的模型重刑 Eloquent

數據庫遷移完成後,接下來的流程就是 seedingEloquent 自從開始發揮作用 seeding 正在向我們的數據庫中插入記錄。 因此,您需要在填充數據庫之前創建模板。 每個數據庫表都有一個對應的模型,用於與該表進行交互。 模板允許您查詢表中的數據,以及將新記錄插入表中。 實例化模型的最簡單方法是使用以下命令:

php artisan make:model Student
模板示例如下所示 Student,可用於從我們學生的數據庫表中檢索和存儲信息:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;

class Student extends Model
{
    //
}

當你生成一個模型,同時你想生成一個數據庫遷移,你可以使用選項 –migration o -m:

php artisan make:model Student --migration

php artisan make:model Student -m

播種者

整體播種機是一組特殊的類,允許我們用完全相同的數據一遍又一遍地填充我們的數據庫。 我們執行以下命令:

php artisan make:seeder StudentsRecordSeeder

在文本編輯器中,在 seeds 文件夾下,打開新創建的文件,文件名為: StudentsRecordSeeder.php. 如您所見,這只是一個非常簡單的類,只有一個名為 run()。

<?php
use IlluminateDatabaseSeeder;

class StudentsRecordSeeder extends Seeder
{
    /**
    * Run the database seeds
    * @return void
    */

    public function run()
    {
        //
    }
}

該代碼只是控制台命令類的包裝器,專門用於幫助完成以下任務 seeding. 編輯代碼,然後保存。

創新通訊
不要錯過有關創新的最重要新聞。 註冊以通過電子郵件接收它們。
public function run()
{
    echo 'Seeding!';
}

去終端:

php artisan db:seed --class=StudentsRecordSeeder

現在您可以用一些條目填充表並運行:

php artisan db:seed --class=class=StudentsRecordSeeder

在這裡你可以不斷地刪除、添加、修改數據庫中的條目,然後用一個簡單的命令恢復它們。

使用 Laravel Eloquent 增刪改查

使用 Laravel Eloquent 對象關係映射器 (ORM) 的 CRUD 操作使 Laravel 開發人員更容易使用多個數據庫。 它執行創建、讀取、更新和刪除 (CRUD) 操作,並將對像模型映射到數據庫表。 處理 CRUD 操作所需的所有數據庫交互。

創造記錄

您可以使用 ::create 方法將新記錄插入數據庫。

student_record::create(array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'student_rank' => 1
));

除了上面顯示的簡單創建方法,您還可以創建一個新對象並賦予它不同的屬性。 然後,您可以調用 save() 函數並運行代碼。 像這樣的方法 firstOrCreate()o firstOrNew() 是創建記錄的其他選項。 這些將使您能夠找到具有某些屬性的學生; 如果找不到該學生,您將在數據庫中創建它或實例化一個新實例。

閱讀記錄

使用 Eloquent ORM,您可以在數據庫中查找記錄。 查詢構造簡單,流程流暢。 創建語句:where,您將使用這些方法 get() 和 first(). 方法 first() 只會返回一條記錄,而方法 get() 將返回一個可循環的記錄數組。 還有,方法 find() 可以與主鍵數組一起使用,這將返回匹配記錄的集合。 這裡有些例子:

$student = Students::all();

此代碼獲取所有學生。 以下代碼通過 ID 查找特定學生:

$student = Students::find(1);

此外,如下所示,代碼描述了根據特定屬性搜索學生。

$JohnDoe = Students::where('name', '=', 'John Doe')->first();

對於 get() 方法,此代碼顯示瞭如何查找級別高於 5 的學生。

$rankStudents = Student::where('student_rank', '>', 5)->get();
記錄更新

使用 Eloquent 更新記錄同樣簡單。 要更新記錄,只需找到要更新的記錄,編輯屬性並保存即可。 例如,要將 John Doe 的學生的年級更改為 5,首先找到該學生,然後執行保存方法。

$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();

save 方法也可用於更新數據庫中已存在的模型。

刪除記錄

Eloquent 以其簡單的記錄更新過程而自豪,但它在刪除方面也有同樣的故事。 有兩種選擇:拉出記錄並執行delete方法,或者乾脆使用destroy方法。 要查找和刪除記錄,只需運行以下命令:

$student = Students::find(1);
$student->delete();

要刪除一條記錄和多條記錄,運行命令:

Students::destroy(1);
Students::destroy(1, 2, 3);

請注意,與可以接受任何數據庫列的 delete 方法不同,destroy 的參數只是主鍵。

查找並刪除所有 10 級以上的學生。

Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
創新通訊
不要錯過有關創新的最重要新聞。 註冊以通過電子郵件接收它們。

最近的文章

智慧鎖市場:市場研究報告發布

智慧鎖市場一詞是指圍繞生產、分銷和使用的行業和生態系統…

3月27 2024

什麼是設計模式:為什麼要使用它們、分類、優點和缺點

在軟體工程中,設計模式是軟體設計中常見問題的最佳解決方案。我很像…

3月26 2024

工業標識的技術演變

工業標記是一個廣泛的術語,包含多種用於在...表面建立永久標記的技術。

3月25 2024

使用 VBA 編寫的 Excel 巨集範例

以下簡單的 Excel 巨集範例是使用 VBA 編寫的 預計閱讀時間:3 分鐘 範例...

3月25 2024