在新选项卡中打开链接 — Laravel Filament

125 阅读1分钟

在 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)=>route(your.route.name,[id=>record) => route('your.route.name', ['id' => record->id]))  :定义按钮将打开的 URL。

openUrlInNewTab()  :这可确保链接在新选项卡中打开。