上联/nova-link-field

一个 Laravel Nova 字段。

1.0.0 2023-05-19 23:43 UTC

This package is auto-updated.

Last update: 2024-09-20 02:57:16 UTC


README

composer require upline/nova-link-field
  • 链接在索引视图和详情视图中显示为资源链接。
  • 在表单中,链接以文本输入的形式显示。

用法

use Upline\NovaLinkField\Link;


class User extends Resource
{
   // ...
   public function fields(NovaRequest $request) 
   {
        return [
            // ...
            Link::make('Instagram')                 // Get link from instagram model field
                ->text(fn() => 'Instagram link')    // Set static anchor 
                ->target('_blank')                  // Set target attribute
        ];   
   }
}
use Upline\NovaLinkField\Link;


class User extends Resource
{
   // ...
   public function fields(NovaRequest $request) 
   {
        return [
            // ...
            Link::make('Instagram', fn($resource) => 'https://instagram.com/' . $resource->instagramId) // Compute link
                ->text('instagram_username')    // Use instagram_username field as anchor text 
                ->target('_blank')
        ];   
   }
}

为什么它比 将文本格式化为链接 更好

在这个例子中,我们没有转义 $username,因此可能会遇到一些安全问题。

Text::make('Twitter Profile', function () {
    $username = $this->twitterUsername;

    return "<a href='https://twitter.com/{$username}'>@{$username}</a>";
})->asHtml(),  

同样,使用这个包

Link::make('Twitter Profile', function () {
    $username = $this->twitterUsername;
    return "https://twitter.com/{$username}";
})->text('username'),  

然而,在这种情况下,链接和用户名将被转义。如果你需要在锚文本中使用 HTML,你仍然可以使用 asHtml() 方法。