在 Laravel Filament 中,您可以添加一个在新页面中打开链接的操作按钮。 Filament 提供了一种在其表格和表单中创建自定义操作按钮的灵活方法。为此,您可以创建一个自定义操作按钮,使用 JavaScript 在新选项卡中打开链接。
创建自定义操作按钮
您需要在 Filament 资源中定义自定义操作按钮。以下是细丝表资源的示例:
use Filament\Tables;
use Filament\Tables\Actions\Action;
class YourResource extends Resource
{
// Other resource methods...
public static function table(Table $table): Table
{
return $table
->columns([
// Define your table columns here...
])
->actions([
Action::make('openLink')
->label('Open Link')
->icon('heroicon-o-external-link')
->action(fn ($record) => null) // No server-side action needed
->color('primary')
->url(fn ($record) => route('your.route.name', ['id' => $record->id]))
->openUrlInNewTab(), // This method will open the link in a new tab
])
->filters([
// Define your filters here...
]);
}
}
定义路线(可选)
Route::get('/your-route/{id}', [YourController::class, 'yourMethod'])->name('your.route.name');
解释
Action::make('openLink') :这将创建一个名为openLink的新操作按钮。
label('Open Link') :设置操作按钮的标签。
icon('heroicon-o-external-link') :设置按钮的图标。
action(fn ($record) => null) :不需要服务器端操作; URL 将处理导航。
url(fn (record->id])) :定义按钮将打开的 URL。
openUrlInNewTab() :这可确保链接在新选项卡中打开。