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

Laravel開發:如何使用Laravel Nova進行CRUD操作?

WBOY
發布: 2023-06-14 11:40:04
原創
1381 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板