Laravel Nova - 将工具更改为资源工具
Laravel Nova - Change Tool to Resource Tool
我正在尝试将构建 Nova 工具转换为资源工具。我试图更改我的工具以扩展 ResourceTool
而不是 Tool
并将资源工具添加到字段中的 Resource
,但它没有显示。我还更改了 ToolServiceProvider
的代码以匹配 ResourceTool
的代码,但不幸的是它不起作用。
我在网上搜索过,但似乎只有我一个人遇到这个问题,有没有人遇到过这种情况并知道该怎么办?我没有收到任何错误消息,只是没有显示资源工具。
这是我的代码,为了便于阅读和保密,我删除了一些代码。
产品(资源)
<?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()
{
//
}
}
我终于修好了。我还必须更改 tool.js
文件以匹配资源工具的文件。
Nova.booting((Vue, router, store) => {
Vue.component('sales-history', require('./components/Tool'))
})
从项目的根目录尝试这个命令:
composer update
我正在尝试将构建 Nova 工具转换为资源工具。我试图更改我的工具以扩展 ResourceTool
而不是 Tool
并将资源工具添加到字段中的 Resource
,但它没有显示。我还更改了 ToolServiceProvider
的代码以匹配 ResourceTool
的代码,但不幸的是它不起作用。
我在网上搜索过,但似乎只有我一个人遇到这个问题,有没有人遇到过这种情况并知道该怎么办?我没有收到任何错误消息,只是没有显示资源工具。
这是我的代码,为了便于阅读和保密,我删除了一些代码。
产品(资源)
<?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()
{
//
}
}
我终于修好了。我还必须更改 tool.js
文件以匹配资源工具的文件。
Nova.booting((Vue, router, store) => {
Vue.component('sales-history', require('./components/Tool'))
})
从项目的根目录尝试这个命令:
composer update