tohokuaikiのチラシの裏

技術的ネタとか。

Laravel5.4でAdminLTEを使う

AdminLTEという管理画面のテンプレートがある。これをLaravelで使いたい。

2019年追記:コッチの方が良さそう。

https://packagist.org/packages/jeroennoten/laravel-adminlte

composerで簡単に使えるようにならないものか

と思って、packagistでLaravel adminlteで検索した。

ダウンロード数と☆数を見て・・・・と考えてるとインストーラ形式のこのパッケージがよさそうだった。

GitHub - acacha/adminlte-laravel: A Laravel 5 package that switchs default Laravel scaffolding/boilerplate to AdminLTE template and Pratt Landing Page with Bootstrap 3.0

acacha/adminlte-laravel-installerのインストール

既に、$HOME/.composer/vendor/bin とcomposerへのパスは通っているものとする。

$ composer global require "acacha/adminlte-laravel-installer=~3.0"
# 既存のLaravelプロジェクトDirectoryに移動
$ admilte-laravel install

これでインストールは完了。この際にacacha/admin-laravelから既存Laravelプロジェクトにファイルがコピーされるのだが、上書きされてしまうので注意が必要。特にconfig/app.phpとroutes/web.php routes/api.php config/database.phpは注意。

# ProviderとFacadeを登録
Adding Acacha\AdminLTETemplateLaravel\Providers\AdminLTETemplateServiceProvider::class to Laravel config app.php file
Adding Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::class                          to Laravel config app.php file

# Controllerを登録(LaravelデフォルトのAuthControllerを変更)
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/HomeController.stub]           To [/app/Http/Controllers/HomeController.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/RegisterController.stub]       To [/app/Http/Controllers/Auth/RegisterController.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/LoginController.stub]          To [/app/Http/Controllers/Auth/LoginController.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/ForgotPasswordController.stub] To [/app/Http/Controllers/Auth/ForgotPasswordController.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/ResetPasswordController.stub]  To [/app/Http/Controllers/Auth/ResetPasswordController.php]

# 画像などのResourceをディレクトリごとコピー
Copied Directory [/vendor/acacha/admin-lte-template-laravel/public/img]          To [/public/img]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/public/css]          To [/public/css]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/public/js]           To [/public/js]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/public/plugins]      To [/public/plugins]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/public/fonts]        To [/public/fonts]
Copied File [/vendor/acacha/admin-lte-template-laravel/public/mix-manifest.json] To [/public/mix-manifest.json]

# エラービューなどをコピー
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/views/errors]                        To [/resources/views/errors]
Copied File [/vendor/acacha/admin-lte-template-laravel/resources/views/welcome.blade.php]                  To [/resources/views/welcome.blade.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/resources/views/layouts/partials/sidebar.blade.php] To [/resources/views/vendor/adminlte/layouts/partials/sidebar.blade.php]

# Assetの元ファイルをコピー
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/assets/css]  To [/resources/assets/css]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/assets/img]  To [/resources/assets/img]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/assets/less] To [/resources/assets/less]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/assets/sass] To [/resources/assets/sass]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/assets/js]   To [/resources/assets/js]

# などなど
Copied File [/vendor/acacha/admin-lte-template-laravel/webpack.mix.js] To [/webpack.mix.js]
Copied File [/vendor/acacha/admin-lte-template-laravel/package.json] To [/package.json]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/tests] To [/tests]
Copied File [/vendor/acacha/admin-lte-template-laravel/phpunit.xml] To [/phpunit.xml]
Copied Directory [/vendor/acacha/admin-lte-template-laravel/resources/lang] To [/resources/lang/vendor/adminlte_lang]
Copied File [/vendor/creativeorange/gravatar/config/gravatar.php] To [/config/gravatar.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/config/adminlte.php] To [/config/adminlte.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/routes/web.php] To [/routes/web.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/routes/api.php] To [/routes/api.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/.env.dusk.local] To [/.env.dusk.local]
Copied File [/vendor/acacha/admin-lte-template-laravel/.env.dusk.testing] To [/.env.dusk.testing]
Copied File [/vendor/acacha/admin-lte-template-laravel/src/stubs/AppServiceProvider.php.stub] To [/app/Providers/AppServiceProvider.php]
Copied File [/vendor/acacha/admin-lte-template-laravel/config/database.php] To [/config/database.php]

artisanコマンド

いくつかのartisanコマンドを提供してくれる。

Routesに追加

$ ./artisan make:route about

とすると、routes/web.phpに追加してくれる。ただし、#adminlte_routesというラインを見ているようなので、このラインを消してはいけない。

Viewを追加

./artisan make:view admin.about

とすると、resources/views/admin/about.blade.phpにテンプレートを追加してくれる。

管理画面Menuを追加する make:menuコマンド

これを行う前に、./artisan adminlte:menuでメニューを作成する。ただし、この機能はspatie/laravel-menuを使っていてこのlaravel-menuはPHP7以上でないとダメである。

adminlte:adminでダミーの管理画面ユーザーを作成

ダミーの管理ユーザを作成してくれる。

$ ./artisan adminlte:admin
File ...laravel_dir.../database/seeds/AdminUserSeeder.php created
User Admin(admin@example.com) with password 123456 created succesfully!

seedとしてAdminUserSeeder.phpが作られる。メールアドレスがadmin@example.comでパスワードが123456になる。.envに ADMIN_USERNAME, ADMIN_EMAIL, ADMIN_PWDを記述することで作成するSeedの値を操作できる。