Laravel開發:如何使用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的cssJavaScript文件發布到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')-&gt;sortable(),              Number::make('Views')-&gt;sortable(),              Text::make('Content')-&gt;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的高級特性,以實現更為復雜的應用程序。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享