prima-ca/nova-custom-views

Laravel Nova 自定义视图。

v1.71 2021-10-22 09:09 UTC

This package is auto-updated.

Last update: 2024-09-22 16:34:39 UTC


README

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads

Nova 自定义视图

此包允许您为特定的 Nova 资源创建可定制的视图。

安装

composer require digitalcloud/nova-custom-views

然后您需要在 config/app.php 中添加服务提供者,在 NovaServiceProvider 之后

 /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    | The service providers listed here will be automatically loaded on the
    | request to your application. Feel free to add your own services to
    | this array to grant expanded functionality to your applications.
    |
    */

    'providers' => [

        ...
        App\Providers\NovaServiceProvider::class,
        ...
        devmtm\NovaCustomViews\NovaCustomViewsServiceProvider::class,
        ...

创建新视图 这是与任何其他 Nova 工具、ResourceTool 或 Field 相同的过程。您可以在终端中简单地使用以下命令

php artisan nova:views resource-name view-name

这将创建您的视图组件在 /nova-components/views/resource-name 中。如果您在先前的过程中安装了依赖项,您可以直接开始使用

cd ./nova-components/views/resource-name && npm run watch

view-name 的允许值是 [index | lens | detail | create | update | attach | update-attached]

如果您没有提供 view-name,它将创建所有先前的 nova 视图。

您可以在 /nova-components/views/resource-name/resources/js/views 中修改任何视图组件。

示例用法:为用户资源创建自定义详细视图

要创建新视图,例如用户详细视图,您可以运行以下命令

php artisan nova:views user detail

这将创建一个新的路径:'/nova-components/views/user',其中包含所有生成的用户视图。新视图扩展了默认的用户 nova 详细视图(使用 vue mixins)。您可以通过访问路径:'/nova-components/views/user/resources/js/views/Detail.vue' 来修改默认视图,并添加以下自定义代码

<template>
   <div>YOUR_CODE_HERE</div>
</template>

示例用法:创建自定义仪表板

要创建自定义仪表板视图,您可以运行以下命令

php artisan nova:dashboard

这将创建一个新的路径:'/nova-components/views/dashboard',其中包含自定义仪表板组件。新视图扩展了默认的 nova 仪表板视图(使用 vue mixins)。您可以通过访问路径:'/nova-components/views/user/resources/js/views/Dashboard.vue' 来修改仪表板视图,并添加以下自定义代码

<template>
   <div>YOUR_CODE_HERE</div>
</template>