Laravel是當(dāng)今最流行的PHP框架之一,它提供了豐富的功能和便捷的開發(fā)體驗(yàn)。Laravel Nova是一個(gè)專門為Laravel應(yīng)用程序設(shè)計(jì)的管理界面構(gòu)建器,可幫助您更輕松地創(chuàng)建和管理后臺(tái)管理面板。在本文中,我們將看看如何使用Laravel Nova進(jìn)行CRUD操作。
什么是CRUD操作?
CRUD是“創(chuàng)建、讀取、更新和刪除”的縮寫。這四個(gè)操作是任何應(yīng)用程序的基本功能。通過CRUD操作,您可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的增加、查詢、更新和刪除等基本操作。在Laravel框架中,我們可以使用Eloquent ORM來輕松地實(shí)現(xiàn)這些操作。但是,如果您想要一個(gè)更友好的管理面板,Laravel Nova會(huì)為您提供一種非常棒的解決方案。
安裝Laravel Nova
在使用Laravel Nova之前,我們需要先安裝它。Laravel Nova是一個(gè)商業(yè)產(chǎn)品,官方提供了一個(gè)30天免費(fèi)試用期。如果您想要嘗試它,可以前往https://nova.laravel.com/網(wǎng)站創(chuàng)建一個(gè)賬戶并獲取試用許可證。
安裝完成后,我們可以將Nova添加到我們的Laravel應(yīng)用程序中。您可以使用composer來完成這個(gè)過程,只需在控制臺(tái)中進(jìn)入您的項(xiàng)目文件夾,然后運(yùn)行以下命令即可:
composer require laravel/nova
登錄后復(fù)制
此外,您還需要注冊(cè)Nova服務(wù)提供者。 在config / app.php文件中,找到providers數(shù)組,然后添加以下代碼:
LaravelNovaNovaServiceProvider::class,
登錄后復(fù)制
運(yùn)行以上命令后,您需要運(yùn)行以下命令:
php artisan nova:install
登錄后復(fù)制登錄后復(fù)制
該命令將為您的應(yīng)用程序生成Nova配置文件和資源目錄。您還需要使用Nova發(fā)布命令將Nova的CSS和JavaScript文件發(fā)布到public / vendor / nova目錄:
php artisan vendor:publish --tag=nova-assets
登錄后復(fù)制
接下來,您還需要在config文件夾中的auth.php文件中設(shè)置驅(qū)動(dòng)程序?yàn)閟ession,才能讓Nova的認(rèn)證系統(tǒng)正常工作:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], ],
登錄后復(fù)制
最后,您還需要運(yùn)行以下命令生成用于Nova的認(rèn)證路由和表:
php artisan nova:install
登錄后復(fù)制登錄后復(fù)制
至此,我們已經(jīng)完成了Laravel Nova的安裝和配置工作。
使用Laravel Nova進(jìn)行CRUD操作
接下來,我們將看看如何使用Laravel Nova進(jìn)行CRUD操作。我們將從簡單的示例開始,讓我們使用Laravel Nova創(chuàng)建一個(gè)新的博客應(yīng)用程序,在這個(gè)應(yīng)用程序中,我們將能夠創(chuàng)建、查看、更新和刪除博客文章。
1.創(chuàng)建模型和數(shù)據(jù)庫遷移
首先,我們需要?jiǎng)?chuàng)建一個(gè)新模型和數(shù)據(jù)庫遷移。我們將使用Laravel的Artisan命令行工具來完成這個(gè)過程。在控制臺(tái)中,切換到您的項(xiàng)目文件夾,然后鍵入以下命令:
php artisan make:model Blog -m
登錄后復(fù)制
該命令將創(chuàng)建一個(gè)名為Blog的新模型,同時(shí)還會(huì)生成一個(gè)名為create_blogs_table的新數(shù)據(jù)庫遷移文件。
現(xiàn)在,我們需要在數(shù)據(jù)庫遷移文件中定義我們的“blogs”表的架構(gòu)。在database / migrations目錄中找到此文件并打開它。您將看到如下代碼:
public function up() { Schema::create('blogs', function (Blueprint $table) { $table->id(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('blogs'); }
登錄后復(fù)制
在此示例中,我們只定義了一個(gè)id和timestamps字段。您可以根據(jù)自己的需要調(diào)整和增加其他字段。完成后運(yùn)行數(shù)據(jù)庫遷移:
php artisan migrate
登錄后復(fù)制
2.定義資源模型
接下來,我們需要定義一個(gè)資源模型。一個(gè)資源模型是Laravel Nova和Eloquent模型之間的橋梁。我們定義資源模型是為了告訴Laravel Nova哪個(gè)數(shù)據(jù)庫表將與它關(guān)聯(lián)。要?jiǎng)?chuàng)建資源模型,請(qǐng)鍵入以下命令:
php artisan nova:resource Blog
登錄后復(fù)制
該命令將在app / Nova目錄中創(chuàng)建一個(gè)新文件,名為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 []; } }
登錄后復(fù)制
在此文件中,我們定義了一個(gè)名為Blog的新資源模型。現(xiàn)在,我們需要將該模型與Laravel模型關(guān)聯(lián)起來。您只需打開模型文件并將以下代碼添加到頂部即可:
namespace App; use IlluminateDatabaseEloquentModel; class Blog extends Model { // }
登錄后復(fù)制
3.將資源連接到nova
現(xiàn)在,我們需要將Blog資源連接到Laravel Nova。為此,您可以打開app / Nova / NovaServiceProvider.php文件,并將以下內(nèi)容添加到其boot方法中:
use AppNovaBlog; // ... public function boot() { // ... Nova::resources([ Blog::class, ]); }
登錄后復(fù)制
現(xiàn)在,我們已經(jīng)成功將Laravel Nova配置好了,我們可以進(jìn)入應(yīng)用程序并看看它是什么樣的。
4.進(jìn)行CRUD操作
現(xiàn)在,我們已經(jīng)成功設(shè)置了Laravel Nova,并將我們的Blog資源與它連接。我們可以訪問管理面板,然后開始進(jìn)行CRUD操作。
在控制臺(tái)中運(yùn)行以下命令,啟動(dòng)本地開發(fā)服務(wù)器:
php artisan serve
登錄后復(fù)制
然后,打開http:// localhost:8000 / nova網(wǎng)址,您將看到一個(gè)登錄頁面。使用您的Laravel應(yīng)用程序中的現(xiàn)有帳戶進(jìn)行登錄。
現(xiàn)在,您可以單擊頂部菜單上的“資源”下拉菜單,并選擇Blog。在這里,您將看到一個(gè)空的博客列表。
我們可以使用Laravel Nova創(chuàng)建、讀取、更新和刪除博客文章。您可以單擊頁面右上角的“新建Blog”按鈕,然后輸入數(shù)據(jù)。每次添加新的博客文章時(shí),該列表將自動(dòng)更新以顯示最新的數(shù)據(jù)。
您可以通過單擊博客文章的名稱,進(jìn)入查看和編輯模式,以執(zhí)行其他操作,例如更新或刪除博客文章。此外,您還可以使用“篩選”功能快速查找特定的博客文章,并使用“搜索”功能搜索所有博客文章中的關(guān)鍵字。
總結(jié)
通過使用Laravel Nova,我們可以輕松地創(chuàng)建和管理Laravel應(yīng)用程序的后臺(tái)管理面板。在本教程中,我們學(xué)習(xí)了如何使用Laravel Nova構(gòu)建一個(gè)簡單的CRUD應(yīng)用程序。您可以在實(shí)際項(xiàng)目中使用類似的方法來操作,同時(shí)掌握更多Laravel Nova的高級(jí)特性,以實(shí)現(xiàn)更為復(fù)雜的應(yīng)用程序。
以上就是Laravel開發(fā):如何使用Laravel Nova進(jìn)行CRUD操作?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.xfxf.net其它相關(guān)文章!