Laravel Nova 全局搜索

2023-02-16 17:09 更新

Nova 不僅允許你在特定的資源和關(guān)系中搜索,還可以使用 Nova 管理面板中頂部導(dǎo)航欄的全局搜索框?qū)λ匈Y源進行全局搜索:


標(biāo)題 / 副標(biāo)題屬性

當(dāng)資源顯示在搜索結(jié)果中時,結(jié)果將顯示資源的 「Title」 。例如,一個 User 資源可以使用它的 name 屬性作為其標(biāo)題。然后,當(dāng)資源顯示在全局搜索結(jié)果中時,將會顯示它的 name 屬性。

你可以通過在資源類上定義 「title」 屬性來自定義資源的 「title」 屬性:

public static $title = 'name';

或者,你也可以覆蓋資源的 title 方法:

/**
 * 獲取指定的資源來展示。
 *
 * @return string
 */
public function title()
{
    return $this->name;
}

副標(biāo)題

你還可以在全局搜索結(jié)果中顯示一個較小的 「subtitle」 屬性。副標(biāo)題將展示在標(biāo)題屬性下。在下面的這張截圖中,你可以看到 Post 資源的作者信息作為副標(biāo)題展示,使得能夠快速識別是誰撰寫的帖子:


通過覆蓋資源的 subtitle 方法來自定義資源的副標(biāo)題屬性:

/**
 * 獲取資源搜索結(jié)果的副標(biāo)題.
 *
 * @return string
 */
public function subtitle()
{
    return "Author: {$this->user->name}";
}

禁用全局搜索

默認(rèn)情況下,所有的 Nova 資源是全局可搜索的;然而你可以通過覆蓋資源中的 globallySearchable 屬性從全局搜索中排除指定資源:

/**
 * 指示資源是否是全局可搜索的。
 *
 * @var bool
 */
public static $globallySearchable = false;


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號