最新の Web アプリケーションでは、管理インターフェイスは考慮する必要がある重要な部分です。直感的で使いやすく、機能が豊富である必要があります。この目標を達成するために、Laravel は Laravel Nova と AdminLTE という 2 つのフレームワークを提供します。
Laravel Nova は、Laravel アプリケーションの管理パネルを数分で生成できる Laravel の管理パネルです。 Laravel Nova は美しい UI、ユーザー管理、CMS などを備えており、開発者は複雑なアプリケーションをより迅速かつ簡単に作成できます。
一方、AdminLTE は無料のバックエンド管理テンプレートであり、優れたユーザー インターフェイスと必要な JavaScript ライブラリも提供します。 Bootstrap CSS フレームワークに基づいており、応答性も優れています。 AdminLTE をローカルに展開してホストし、高速でカスタマイズ可能な管理インターフェイスを実現できます。
この記事では、Laravel NovaとAdminLTEを使って美しい管理インターフェースを生成する方法を紹介します。
ステップ 1: Laravel Nova をインストールする
Laravel Nova を使用して管理パネルを作成するには、まず Laravel Nova をインストールする必要があります。インストールを完了するには、以下の手順に従ってください:
composer require laravel/nova
. ファイルを変更し、次の行を
providers 配列に追加します:
LaravelNovaNovaServiceProvider::class.
ファイルを開き、次のメソッドを追加します。
use LaravelNovaNova; protected function routes() { Nova::routes() ->withAuthenticationRoutes() ->withPasswordResetRoutes() ->register(); }
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(), ]; } }
import Nova from './vendor/laravel/nova/Nova.js'; Nova.booting((Vue, router, store) => { router.addRoutes([ { name: 'nova', path: '/nova', component: require('./views/Nova'), }, ]) })
Route::get('/nova', function () { return view('nova'); });
mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .sourceMaps(); if (mix.inProduction()) { mix.version(); }
ディレクトリに抽出します。ダウンロード リンクは次のとおりです: https://adminlte.io/themes/dev/AdminLTE/
のルートに表示されます。
ファイルを作成し、次の内容をファイルに挿入します。 new ビューの body タグに次のコンテンツを含めます:
<!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>
<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>
novarequire('./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 のスタイル シートと JavaScript が正常に呼び出されることを確認します。次のコマンドを使用できます。
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, }, // ... });
以上がLaravel 開発: Laravel Nova と AdminLTE を使用してバックエンド管理インターフェイスを生成する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。