扩展包中的模板文件有问题,非侵入式修正方法 | laravel china 社区-大发黄金版app下载
示例问题描述
在dcat-admin 中 grid 使用switch 修改失败时。前端展示的状态是成功的。
正确的方式:应该是操作返回失败,前端展示也不能成功。
非侵入式去修改 扩展包里面的源代码,而是用自己定义的模板文件去覆盖。
- 在 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.php
的 boot
添加如下代码
// 自己定义的模板文件
$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'));
});
}
- 完整示例
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 的极速开发框架
可以考虑使用官方介绍的: resource/view/vendor/xxx-扩展名/switch.blade.php 修改
战狼 去缅北回来了?