在“旅行者”的“浏览页面操作”列中,具有以下按钮:
删除,查看和编辑
上述按钮的图标值来自存储在 / vendor / tcg / voyager / src / Actions /
中的各个操作文件中的getIcon()方法使用例如:从 /vendor/tcg/voyager/src/Actions/DeleteAction.php@getIcon
获取的删除按钮图标值现在,我想更改此值而不触摸上面的文件。
我将如何覆盖以上文件?
经过研究,我发现以下内容 由于某种原因,我将不得不覆盖以下文件:
\ vendor \ tcg \ voyager \ Voyager.php
在上面的文件中,DeleteAction是使用以下代码导入的:
使用TCG \ Voyager \ Actions \ DeleteAction;
答案 0 :(得分:1)
创建您自己的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);
...
}
...
}
您可以看到source of the replaceAction()
method at [voyager]/src/Voyager.php:174