搜尋
首頁php框架LaravelLaravel開發:如何使用Laravel Nova進行CRUD操作?

Laravel是當今最受歡迎的PHP框架之一,它提供了豐富的功能和便利的開發體驗。 Laravel Nova是專為Laravel應用程式設計的管理介面建構器,可協助您更輕鬆地建立和管理背景管理面板。在本文中,我們將看看如何使用Laravel Nova進行CRUD操作。

什麼是CRUD操作?

CRUD是「建立、讀取、更新和刪除」的縮寫。這四個操作是任何應用程式的基本功能。透過CRUD操作,您可以實現資料庫中資料的增加、查詢、更新和刪除等基本操作。在Laravel框架中,我們可以使用Eloquent ORM來輕鬆實現這些操作。但是,如果您想要一個更友善的管理面板,Laravel Nova會為您提供一個非常棒的解決方案。

安裝Laravel Nova

在使用Laravel Nova之前,我們需要先安裝它。 Laravel Nova是一個商業產品,官方提供了一個30天免費試用期。如果您想要嘗試它,可以前往https://nova.laravel.com/網站建立帳戶並取得試用許可證。

安裝完成後,我們可以將Nova加入我們的Laravel應用程式。您可以使用composer來完成這個過程,只需在控制台中進入您的專案資料夾,然後執行以下命令:

composer require laravel/nova

此外,您還需要註冊Nova服務提供者。在config / app.php檔案中,找到providers數組,然後新增以下程式碼:

LaravelNovaNovaServiceProvider::class,

執行上述命令後,您需要執行以下命令:

php artisan nova:install

該命令將為您的應用程式產生Nova設定檔和資源目錄。您還需要使用Nova發布命令將Nova的CSS和JavaScript檔案發佈到public / vendor / nova目錄:

php artisan vendor:publish --tag=nova-assets

接下來,您還需要在config資料夾中的auth.php檔案中設定驅動程式為session,才能讓Nova的認證系統正常運作:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

最後,您還需要執行以下命令產生用於Nova的認證路由和表:

php artisan nova:install

至此,我們已經完成了Laravel Nova的安裝與設定工作。

使用Laravel Nova進行CRUD操作

接下來,我們將看看如何使用Laravel Nova進行CRUD操作。我們將從簡單的範例開始,讓我們使用Laravel Nova創建一個新的部落格應用程序,在這個應用程式中,我們將能夠創建、查看、更新和刪除部落格文章。

1.建立模型和資料庫遷移

首先,我們需要建立一個新模型和資料庫遷移。我們將使用Laravel的Artisan命令列工具來完成這個過程。在控制台中,切換到您的專案資料夾,然後鍵入以下命令:

php artisan make:model Blog -m

該命令將建立一個名為Blog的新模型,同時也會產生一個名為create_blogs_table的新資料庫遷移檔案。

現在,我們需要在資料庫遷移檔案中定義我們的「blogs」表的架構。在database / migrations目錄中找到此檔案並開啟它。您將看到如下程式碼:

public function up()
{
    Schema::create('blogs', function (Blueprint $table) {
        $table->id();
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('blogs');
}

在此範例中,我們只定義了一個id和timestamps欄位。您可以根據自己的需求調整和增加其他欄位。完成後執行資料庫遷移:

php artisan migrate

2.定義資源模型

接下來,我們需要定義一個資源模型。一個資源模型是Laravel Nova和Eloquent模型之間的橋樑。我們定義資源模型是為了告訴Laravel Nova哪個資料庫表會與它關聯。要建立資源模型,請鍵入以下命令:

php artisan nova:resource Blog

該命令將在app / Nova目錄中建立一個新文件,名稱為Blog.php。開啟此檔案後,您將看到以下程式碼:

<?php

namespace AppNova;

use IlluminateHttpRequest;
use LaravelNovaFieldsID;
use LaravelNovaFieldsText;
use LaravelNovaFieldsNumber;
use LaravelNovaHttpRequestsNovaRequest;

class Blog extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = '';

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'id';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            Text::make('Title')->sortable(),

            Number::make('Views')->sortable(),

            Text::make('Content')->hideFromIndex(),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function filters(Request $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function lenses(Request $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function actions(Request $request)
    {
        return [];
    }
}

在此檔案中,我們定義了一個名為Blog的新資源模型。現在,我們需要將該模型與Laravel模型關聯起來。您只需打開模型檔案並將以下程式碼新增至頂部:

namespace App;

use IlluminateDatabaseEloquentModel;

class Blog extends Model
{
    //
}

3.將資源連接到nova

現在,我們需要將Blog資源連接到Laravel Nova。為此,您可以打開app / Nova / NovaServiceProvider.php文件,並將以下內容添加到其boot方法中:

use AppNovaBlog;

// ...

public function boot()
{
    // ...

    Nova::resources([
        Blog::class,
    ]);
}

現在,我們已經成功將Laravel Nova配置好了,我們可以進入應用程式並看看它是什麼樣的。

4.進行CRUD操作

現在,我們已經成功設定了Laravel Nova,並將我們的Blog資源與它連接。我們可以存取管理面板,然後開始進行CRUD操作。

在控制台中執行以下命令,啟動本機開發伺服器:

php artisan serve

然後,開啟http:// localhost:8000 / nova網址,您將看到一個登入頁面。使用您的Laravel應用程式中的現有帳戶進行登入。

現在,您可以點擊頂部選單上的「資源」下拉式選單,並選擇Blog。在這裡,您將看到一個空的部落格清單。

我們可以使用Laravel Nova來建立、讀取、更新和刪除部落格文章。您可以點選頁面右上角的「新Blog」按鈕,然後輸入資料。每次新增新的部落格文章時,該清單將自動更新以顯示最新的數據。

您可以透過點擊部落格文章的名稱,進入檢視和編輯模式,以執行其他操作,例如更新或刪除部落格文章。此外,您還可以使用「篩選」功能快速尋找特定的部落格文章,並使用「搜尋」功能搜尋所有部落格文章中的關鍵字。

總結

透過使用Laravel Nova,我們可以輕鬆地建立和管理Laravel應用程式的後台管理面板。在本教程中,我們學習如何使用Laravel Nova建立一個簡單的CRUD應用程式。您可以在實際專案中使用類似的方法來操作,同時掌握更多Laravel Nova的高階特性,以實現更為複雜的應用程式。

以上是Laravel開發:如何使用Laravel Nova進行CRUD操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Laravel:遷移和模型之間有什麼區別?Laravel:遷移和模型之間有什麼區別?May 16, 2025 am 12:15 AM

遷移在laravelmanagedatabaseschema,同時shandledatainterAction.1)遷移術語,允許創造,修改和deletionoftables

Laravel:使用軟刪除或物理刪除更好嗎?Laravel:使用軟刪除或物理刪除更好嗎?May 16, 2025 am 12:15 AM

SoftDeletsinlaraveRareBetterTernaverainteraldatialdataAndRecoverability,而骨質骨骼驗證了forderableford.fordableablefordataminimization和Privacy.1)softerdeleteseThesoftDeletDeletEstrait,允許restrestoratorralityandaudtrails和mayincroredatabasesize.2)物理

Laravel軟刪除:實施的綜合指南Laravel軟刪除:實施的綜合指南May 16, 2025 am 12:11 AM

softDeletsinlesInLaravelAlavareAfeAtarowSyOutOmarkRecordsAsdeletedwithOutreMovingThemfromthedataBase.toimplementsoftsoftdeletes:1)addtheSoftDeletDeleteStraittRaittRaiteRemodoyouRmodeNClandInclandInclandEncludEthedeletdelet_atcolumted_atcolumn.2)

了解Laravel遷移:數據庫架構控制變得容易了解Laravel遷移:數據庫架構控制變得容易May 16, 2025 am 12:09 AM

laravelmigrationsareefectectivectiveDueTotheirversionControlandRoranderibalsible,slepliningDatabasemagementInwebDevelopment.1)heSpapsulatesCheMachangeNphpClasses,允許easyerollbacks

Laravel遷移:數據庫開發的最佳實踐Laravel遷移:數據庫開發的最佳實踐May 16, 2025 am 12:01 AM

LaravelMigrationsareArareBestWhenFollowingTheSepractices:1)用戶清除,描述性formigrations,例如'addemailtouserstable'.2)ensuremigrationsareReereSareReverSiblewitha'down'method.3)考慮到the the the the the the the the the the the the the the broaderimptactondataintegnegrityAndegrityAndegrinegrityAndertality.4)optimizeperformanceb

Laravel   Vue.js 開發單頁面應用(SPA)教程Laravel Vue.js 開發單頁面應用(SPA)教程May 15, 2025 pm 09:54 PM

使用Laravel和Vue.js可以構建單頁面應用(SPA)。 1)在Laravel中定義API路由和控制器,處理數據邏輯。 2)在Vue.js中創建組件化前端,實現用戶界面和數據交互。 3)配置CORS和使用axios進行數據交互。 4)利用VueRouter實現路由管理,提升用戶體驗。

如何在Laravel中創建自定義輔助函數?如何在Laravel中創建自定義輔助函數?May 15, 2025 pm 09:51 PM

在Laravel中創建自定義輔助函數的步驟是:1.在composer.json中添加自動加載配置;2.運行composerdump-autoload更新自動加載器;3.在app/Helpers目錄下創建並定義函數。這些函數能簡化代碼,提高可讀性和可維護性,但需注意命名衝突和測試性。

Laravel中的數據庫事務(Transactions)如何處理?Laravel中的數據庫事務(Transactions)如何處理?May 15, 2025 pm 09:48 PM

在Laravel中處理數據庫事務時,應使用DB::transaction方法,並註意以下要點:1.使用lockForUpdate()鎖定記錄;2.通過try-catch塊處理異常,並在需要時手動回滾或提交事務;3.考慮事務的性能,縮短執行時間;4.避免死鎖,可使用attempts參數重試事務。這段摘要完整地概括瞭如何在Laravel中優雅地處理事務,並提煉了文章中的核心要點和最佳實踐。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

北端:融合系統,解釋
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用