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

示例问题描述#

在 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 的极速开发框架
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

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

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

战狼 去缅北回来了?

3个月前 评论

Dcat-plus Admin @ 速码邦
文章
33
粉丝
52
喜欢
180
收藏
147
排名:444
访问:2.1 万
私信
所有博文
社区赞助商