laravel-5.8 - 如何覆盖 Laravel Voyager 的 Actions 目录文件?
问题描述
在 Voyager 中用于浏览页面操作列有以下按钮:
删除、查看和编辑
上述按钮的图标值来自存储在/vendor/tcg/voyager/src/Actions/的相应操作文件中使用的 getIcon() 方法
例如:从/vendor/tcg/voyager/src/Actions/DeleteAction.php@getIcon获取的删除按钮图标值
现在我想改变这个值而不触及上面的文件。
我将如何覆盖上面的文件?
经过一些研究,我在下面发现不知何故我将不得不覆盖以下文件:
\vendor\tcg\voyager\Voyager.php
在上面的文件中,DeleteAction 是使用以下代码导入的:
使用 TCG\Voyager\Actions\DeleteAction;
解决方案
创建您自己的 Action 类,可能扩展原始 Voyager Action 类:
App\Voyager\Actions\DeleteAction.php
:
<?php
namespace App\Voyager\Actions;
use TCG\Voyager\Actions\DeleteAction as VoyagerDeleteAction;
class DeleteAction extends VoyagerDeleteAction
{
public function getIcon()
{
return 'my-custom-icon';
}
}
在您的服务提供商中将默认操作替换为您的操作:
App\Providers\AppServiceProvider.php
:
<?php
namespace App\Providers;
use App\Voyager\Actions\DeleteAction as MyDeleteAction;
use Illuminate\Support\ServiceProvider;
use TCG\Voyager\Actions\DeleteAction;
use TCG\Voyager\Facades\Voyager;
class AppServiceProvider extends ServiceProvider
{
...
public function boot()
{
...
Voyager::replaceAction(DeleteAction::class, MyDeleteAction::class);
...
}
...
}
推荐阅读
- php - Why does curl error after version update?
- qlikview - qlikview MapSubString
- python - 分组删除存在重复行的列。熊猫
- blockchain - How can i configure a database in the node.conf file using Corda RPC?
- html - Html 元素中的管道转换器
- javascript - ChartJS in React does not change even if props changes - Hooks
- azure-devops - 为什么我的门控签到无法运行最终签到任务?
- django - Draw Chart while Exporting Pdf file - Django
- javascript - Javascript 未在 Sharepoint 2016 中加载
- javascript - Changing background-image to sql image