搜尋
首頁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的影響:簡化網絡開發Apr 21, 2025 am 12:18 AM

Laravel通過簡化Web開發過程和提供強大功能脫穎而出。其優勢包括:1)簡潔的語法和強大的ORM系統,2)高效的路由和認證系統,3)豐富的第三方庫支持,使得開發者能專注於編寫優雅的代碼並提高開發效率。

Laravel:前端還是後端?澄清框架的角色Laravel:前端還是後端?澄清框架的角色Apr 21, 2025 am 12:17 AM

laravelispredminandermanthandermanthandermanthandermanthermanderframework,設計Forserver-SideLogic,databasemagement,andapideplupment,thryitalsosupportsfortfortsfrontenddevelopmentwithbladeTemplates。

Laravel vs. Python:探索性能和可擴展性Laravel vs. Python:探索性能和可擴展性Apr 21, 2025 am 12:16 AM

Laravel和Python在性能和可擴展性方面的表現各有優劣。 Laravel通過異步處理和隊列系統提升性能,但受PHP限制在高並發時可能有瓶頸;Python利用異步框架和強大的庫生態系統表現出色,但在多線程環境下受GIL影響。

Laravel vs. Python(與框架):比較分析Laravel vs. Python(與框架):比較分析Apr 21, 2025 am 12:15 AM

Laravel適合團隊熟悉PHP且需功能豐富的項目,Python框架則視項目需求而定。 1.Laravel提供優雅語法和豐富功能,適合需要快速開發和靈活性的項目。 2.Django適合複雜應用,因其“電池包含”理念。 3.Flask適用於快速原型和小型項目,提供極大靈活性。

Laravel的前端:探索可能性Laravel的前端:探索可能性Apr 20, 2025 am 12:19 AM

Laravel可以用於前端開發。 1)使用Blade模板引擎生成HTML。 2)集成Vite管理前端資源。 3)構建SPA、PWA或靜態網站。 4)結合路由、中間件和EloquentORM創建完整Web應用。

PHP和Laravel:構建服務器端應用程序PHP和Laravel:構建服務器端應用程序Apr 20, 2025 am 12:17 AM

PHP和Laravel可用於構建高效的服務器端應用。 1.PHP是開源腳本語言,適用於Web開發。 2.Laravel提供路由、控制器、EloquentORM、Blade模板引擎等功能,簡化開發。 3.通過緩存、代碼優化和安全措施,提升應用性能和安全性。 4.測試和部署策略確保應用穩定運行。

Laravel vs. Python:學習曲線和易用性Laravel vs. Python:學習曲線和易用性Apr 20, 2025 am 12:17 AM

Laravel和Python在學習曲線和易用性上的表現各有優劣。 Laravel適合快速開發Web應用,學習曲線相對平緩,但掌握高級功能需時間;Python語法簡潔,學習曲線平緩,但動態類型系統需謹慎。

Laravel的優勢:後端發展Laravel的優勢:後端發展Apr 20, 2025 am 12:16 AM

Laravel在後端開發中的優勢包括:1)優雅的語法和EloquentORM簡化了開發流程;2)豐富的生態系統和活躍的社區支持;3)提高了開發效率和代碼質量。 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

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

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版

SublimeText3 英文版

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