扩展包中的模板文件有问题,非侵入式修正方法

示例问题描述

在dcat-admin 中 grid 使用switch 修改失败时。前端展示的状态是成功的。

Laravel

正确的方式:应该是操作返回失败,前端展示也不能成功。

非侵入式去修改 扩展包里面的源代码,而是用自己定义的模板文件去覆盖。

  • 在 switch.blade.php 的判断中添加代码
    if (d.status) {
                      Dcat.success(msg);
                      reload && Dcat.reload();
                  } else {
                      Dcat.error(msg);
                      // 以下修正追加代码
                      that.prop('checked', !that.is(':checked'));
                      that.parent().find('.switchery').remove();
                      new Switchery(that[0], that.data());
                  }

需要在 app/Providers/AppServiceProvider.phpboot 添加如下代码

// 自己定义的模板文件
        $customView = resource_path('views/switch.blade.php');
        if (file_exists($customView)) {
            View::composer('admin::grid.displayer.switch', function ($view) {
                // 重新指定视图路径
                $view->setPath(resource_path('views/switch.blade.php'));
            });
        }
  • 完整示例
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        //
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        // 自己定义的模板文件
        $customView = resource_path('views/switch.blade.php');
        if (file_exists($customView)) {
            View::composer('admin::grid.displayer.switch', function ($view) {
                // 重新指定视图路径
                $view->setPath(resource_path('views/switch.blade.php'));
            });
        }
    }
}

这个问题在plus版中,已经修正。

dcat-admin 并未停止不前,plus版 持续更新 保持活力

dcat-plus admin (plus版)沿用 dcat-admn 最新代码,并让dcat-admin 保持活力。已支持到Laravel11,并新增多个组件。

加群学习交流

微信:Q3664839 (加微信 后拉你进入微信技术交流群)

本作品采用《CC 协议》,转载必须注明作者和本文链接
Dcat-Admin (plus版)是汇聚Filament,Laravel-admin , Dcat-admin 优点于一身的基于Laravel + Bootstrap 的极速开发框架
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

可以考虑使用官方介绍的: resource/view/vendor/xxx-扩展名/switch.blade.php 修改

1个月前 评论
Dcatplus-杨光 (楼主) 1个月前

战狼 去缅北回来了?

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
Dcat-plus Admin @ 速码邦
文章
30
粉丝
49
喜欢
166
收藏
143
排名:455
访问:2.0 万
私信
所有博文
社区赞助商