上联 / nova-link-field
一个 Laravel Nova 字段。
1.0.0
2023-05-19 23:43 UTC
Requires
- php: ^8.0
- laravel/nova: ^4.0
Requires (Dev)
- laravel/pint: ^1.10
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()
方法。