在現代Web應用程序中,管理界面是一個必須要考慮的重要部分。它需要是直觀、易于使用和功能豐富的。為了實現這一目標,Laravel提供了Laravel Nova和AdminLTE兩個框架。
Laravel Nova是Laravel中的一個管理面板,它可以在幾分鐘內為您的Laravel應用程序生成一個管理面板。Laravel Nova具有美觀的UI、用戶管理、CMS等功能,使開發人員能夠更快、更輕松地創建復雜的應用程序。
另一方面,AdminLTE是一個免費的后臺管理模板,它還提供了一個不錯的用戶界面和必要的JavaScript庫。它是基于Bootstrap CSS框架的,也是響應式的。您可以在本地部署和托管AdminLTE,從而獲得一個快速、自定義的管理界面。
在本文中,我們將介紹使用Laravel Nova和AdminLTE來生成一個漂亮的管理界面的方法。
步驟1:安裝Laravel Nova
要使用Laravel Nova創建一個管理面板,您需要先安裝Laravel Nova。請按照以下步驟完成安裝:
- 在您的Laravel應用程序中,使用以下命令安裝Nova:
composer require laravel/nova
.修改 config/app.php
文件,將以下行添加到 providers
數組中:LaravelNovaNovaServiceProvider::class
.為用戶注冊Nova的路由,打開 app/Providers/NovaServiceProvider.php
文件,添加以下方法:use LaravelNovaNova; protected function routes() { Nova::routes() ->withAuthenticationRoutes() ->withPasswordResetRoutes() ->register(); }
登錄后復制
步驟2:創建Nova資源
在Laravel Nova中,資源用于與數據庫模型進行交互。要創建一個資源,請運行以下命令:
php artisan nova:resource {resourceName}
登錄后復制
這將在 app/Nova
目錄中創建一個資源類。在資源類中,您可以定義如何管理和展示資源數據。例如,以下代碼定義如何顯示User
資源:
namespace AppNova; use LaravelNovaResource; use LaravelNovaFieldsID; use LaravelNovaFieldsText; use LaravelNovaFieldsGravatar; class User extends Resource { /** * The model the resource corresponds to. * * @var string */ public static $model = 'App\User'; /** * Get the displayable label of the resource. * * @return string */ public static function label() { return __('Users'); } /** * Get the displayable singular label of the resource. * * @return string */ public static function singularLabel() { return __('User'); } /** * Get the fields displayed by the resource. * * @param IlluminateHttpRequest $request * @return array */ public function fields(Request $request) { return [ ID::make()->sortable(), Gravatar::make(), Text::make('Name')->sortable(), Text::make('Email')->sortable(), ]; } }
登錄后復制
步驟3:注冊Nova資源
在resources/assets/js/app.js中添加以下內容:
import Nova from './vendor/laravel/nova/Nova.js'; Nova.booting((Vue, router, store) => { router.addRoutes([ { name: 'nova', path: '/nova', component: require('./views/Nova'), }, ]) })
登錄后復制
添加路由,使Laravel可以訪問Nova:
Route::get('/nova', function () { return view('nova'); });
登錄后復制
最后,將以下內容添加到您的webpack.mix.js文件:
mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .sourceMaps(); if (mix.inProduction()) { mix.version(); }
登錄后復制
步驟4:使用AdminLTE和Nova混合
現在您已經安裝了Laravel Nova和創建了Nova資源。下一步是將AdminLTE樣式表和JavaScript庫添加到Nova資源中,以便創建具有AdminLTE樣式的自定義管理面板。
- 下載AdminLTE并將其解壓縮到
public
目錄中。下面是下載鏈接:https://adminlte.io/themes/dev/AdminLTE/創建一個新的視圖來呈現管理面板。它將顯示在/nova
的路由中。基于當前的模板,創建一個nova.blade.php
文件,并將以下內容插入到文件中:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compati ble" content="ie=edge"> <title>{{ config('app.name') }} - {{__('Nova')}}</title> <!-- Include AdminLTE CSS --> <link rel="stylesheet" href="/css/adminlte.css"> </head> <body class="hold-transition sidebar-mini"> <div id="app"> <nova/> </div> <!-- Include AdminLTE and jQuery JavaScript --> <script src="/js/adminlte.js"></script> <script src="{{ asset('js/app.js') }}"></script> </body> </html>
登錄后復制
- 在新的視圖中,將以下內容包含到body標簽中:
<div class="wrapper"> {{-- Main navigation --}} <nav class="main-header navbar navbar-expand navbar-white navbar-light"> </nav> {{-- Left side column. contains the logo and sidebar --}} <aside class="main-sidebar sidebar-dark-primary elevation-4"> </aside> {{-- Content Wrapper. Contains page content --}} <div class="content-wrapper"> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-md-12"> {{-- Your Nova API Resource --}} {{-- Example: @resource('users') --}} </div> </div> </div> </section> </div> {{-- Main Footer --}} <footer class="main-footer"> </footer> </div>
登錄后復制
- 在你的Conponents中創建一個新的Vue Component并命名為
Nova
。Nova Component在創建時需要注冊路由和相關信息:require('./bootstrap'); import Vue from 'vue'; import Nova from './Nova'; import router from './router'; import store from './store'; Vue.component('nova', Nova); const app = new Vue({ el: '#app', router, store });
登錄后復制
- 添加一個新的路由來處理
nova
路由,它應該指向對應的Vue Component:import Vue from 'vue'; import Router from 'vue-router'; import Home from './components/Home'; import Nova from './Nova'; Vue.use(Router); export default new Router({ // ... { path: '/nova', name: 'nova', component: Nova, }, // ... });
登錄后復制
- 驗證Nova的樣式表和JavaScript是否調用正常,您可以使用以下命令:
php artisan serve
登錄后復制
現在,您已經成功將Laravel Nova和AdminLTE混合使用,可以自定義管理面板了。
結論
在本文中,我們介紹了如何使用Laravel Nova和AdminLTE來創建一個漂亮、靈活的管理面板。這些工具的強大組合可以為開發人員提供一個快速的方法來創建具有復雜功能的應用程序,并幫助開發人員更快地實現其業務需求。希望讀者能夠從本文中了解到更多關于Laravel框架的內容。
以上就是Laravel開發:如何使用Laravel Nova和AdminLTE生成后臺管理界面?的詳細內容,更多請關注www.xfxf.net其它相關文章!