Laravel Nova - Сменить инструмент на Инструмент ресурсов - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь преобразовать инструмент сборки Nova в инструмент ресурсов.Я попытался изменить свой Инструмент, чтобы расширить ResourceTool вместо Tool и добавить инструмент ресурсов к Resource в полях, но он не отображается.Я также изменил код ToolServiceProvider, чтобы он соответствовал коду ResourceTool, но, к сожалению, он не работает.

Я искал в Интернете, но у меня, похоже, есть единственная проблема с этим, кто-нибудь когда-либоиспытал это и знаешь что делать?Я не получаю никаких сообщений об ошибках, инструмент ресурсов просто не отображается.

Вот мой код, я удалил его для удобства чтения и конфиденциальности.

Product (ресурс)

<?php

namespace App\Nova;

use confidentiality\SalesHistory\SalesHistory;

class Product extends Resource
{
    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            SalesHistory::make(),

        ];
    }
}

SalesHistory (инструмент ресурсов)

<?php

namespace confidentiality\SalesHistory;

use Laravel\Nova\ResourceTool;

class SalesHistory extends ResourceTool
{
    /**
     * Get the displayable name of the resource tool.
     *
     * @return string
     */
    public function name()
    {
        return 'Sales History';
    }

    /**
     * Get the component name for the resource tool.
     *
     * @return string
     */
    public function component()
    {
        return 'sales-history';
    }
}

ToolServiceProvider (инструмент ресурсов)

<?php

namespace confidentiality\SalesHistory;

use Laravel\Nova\Nova;
use Laravel\Nova\Events\ServingNova;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;

class ToolServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        $this->app->booted(function () {
            $this->routes();
        });

        Nova::serving(function (ServingNova $event) {
            Nova::script('sales-history', __DIR__.'/../dist/js/tool.js');
            Nova::style('sales-history', __DIR__.'/../dist/css/tool.css');
        });
    }

    /**
     * Register the tool's routes.
     *
     * @return void
     */
    protected function routes()
    {
        if ($this->app->routesAreCached()) {
            return;
        }

        Route::middleware(['nova'])
                ->prefix('nova-vendor/sales-history')
                ->group(__DIR__.'/../routes/api.php');
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

1 Ответ

0 голосов
/ 22 мая 2019

Мне удалось наконец это исправить.Мне также пришлось изменить файл tool.js в соответствии с файлом Resource Tool.

Nova.booting((Vue, router, store) => {
    Vue.component('sales-history', require('./components/Tool'))
})
...