Laravel 管理画面パッケージ Laravel Nova を導入する

 

Laravel 管理画面パッケージ Laravel Nova を導入する

● Laravel Nova のインストール

公式サイトでライセンスを購入後ダウンロードしたいバージョンをクリックしてLaravel Novaをダウンロードします。

ダウンロードしたzipファイルを解凍して、解凍されたディレクトリを novaにリネームします。

● Laravelアプリの作成

composer create-project "laravel/laravel" my_app

● novaの導入

Laraveアプリのトップページと同階層にnovaディレクトリーをアップロードします。
composer.json の一番後ろに次のコードを追加して保存します

composer.json

    "repositories": [
        {
            "type": "path",
            "url": "./nova"
        }
    ]

composer.json の一番後ろに次のコードを追加して保存します
続けてcomposer.json のrequireセクションに次のコードを追加して保存します

"laravel/nova": "*"

このような表記になります

composer.json

    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0" ,
        "laravel/nova": "*"
    },

.envファイルにデータベースへの接続情報を書き込みます

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myapp(設定したdb名)
DB_USERNAME=myapp(設定したユーザー名)
DB_PASSWORD=123456789(設定したパスワード)

app\Providers\AppServiceProvider.php を修正します

    public function boot()
    {
        // ↓ この行を追加
        Illuminate\Support\Facades\Schema::defaultStringLength(191);
    }

次のコマンドを実行します

composer update
php artisan nova:install
php artisan migrate

以上でインストールは完了です

次のファイルが自動生成されています。

/app/Nova/Resource.php
/app/Nova/User.php
/app/Providers/NovaServiceProvider.php

● Laravel Novaの起動

下記のURLにアクセスします

https://YOUR-SITE.TLD/nova

● ユーザーの作成

まだアクセスするためのユーザーがないのでユーザーを作成します。

php artisan nova:user

以上でアクセスまで完了しました!

 

● マイグレーションファイルの作成

/database/migrations/20190809000000createpoststable.php として以下の内容を保存します。

<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration {

    public function up()
    {
        Schema::create('posts', function(Blueprint $table) {
            $table->increments('id');
            $table->string('name')->comment('タイトル');
            $table->text('content_name')->nullable()->comment('本文');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::drop('posts');
    }

}

artisanコマンドからDBを作成します

php artisan migrate

● Novaのモデルの作成

php artisan nova:resource Post

/app/Nova/Post.php が作成されます。

以下のように書き換えます

    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            \Laravel\Nova\Fields\Text::make('name')->sortable(),
            \Laravel\Nova\Fields\Textarea::make('content_name')->sortable(),
        ];
    }

これで Postモデル(postsテーブル)を管理画面から更新できるようになりました。 Laravel Nova便利!

 

Laravel 管理画面パッケージ Laravel Nova を導入する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です