slaveniangooner/searchable-select

一个 Laravel Nova 字段。

此包的官方仓库似乎已不存在,因此该包已被冻结。

1.3.2 2019-12-04 08:26 UTC

This package is auto-updated.

Last update: 2024-06-04 18:21:23 UTC


README

为 Laravel Nova 提供的可搜索选择字段。此字段结合了 BelongsTo 字段和 Select 字段的特性。

基本是一个常规选择字段,其中您指定要搜索的资源,无需“关系”。这意味着,您也可以将其用于数据库中额外的 JSON 字段。

安装

Composer

composer require sloveniangooner/searchable-select

使用方法

与常规选择字段类似,但您提供的是 resource 方法而不是 options 方法,其中包含资源名称。

use Sloveniangooner\SearchableSelect\SearchableSelect;
...

SearchableSelect::make('Content', 'content_id')->resource("contents")
... or
SearchableSelect::make("Content", "content_id")->resource(\App\Nova\Content::class)

您可以使用所有常规选项,例如

SearchableSelect::make('Content', 'content_id')
    ->resource("contents")
    ->help("Help text")
    ->displayUsingLabels()
    ->nullable()

但也可以使用三个额外选项

SearchableSelect::make('Content', 'content_id')
    ->resource("contents")
    ->label("custom_label_field") // Defaults to the static $title attribute of the resource class
    ->labelPrefix("custom_prefix_field") // Allows you to prefix the label field with one other field, i.e. "code":"label"
    ->value("custom_value_field") // Defaults to 'id'

您现在也可以选择多选选项。需要在数据库中有一个 textjson 字段。

SearchableSelect::make('Content', 'content_id')
    ->resource("contents")
    ->multiple()
    ->displayUsingLabels()
    ->nullable()

另一个选项是定义搜索中显示的项目最大数量。(默认:20)

SearchableSelect::make("Content", "content_id")
                ->resource("contents")
                ->max(10)

您可以使用基模型搜索方法而不是 Nova 资源搜索方法,使用 useBaseSearch()

SearchableSelect::make('Content', 'content_id')
    ->resource("contents")
    ->useBaseSearch()