W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Nova 的過濾器可以讓你定制你的 Nova 列表的查詢條件。例如,你也許想定義一個(gè)過濾器,用來快速找到 你應(yīng)用中的 "管理員" 用戶:
你可以通過 nova:filter
Artisan 命令來生成一個(gè)過濾器,生成的過濾器默認(rèn)放在 app/Nova/Filters
文件夾下:
php artisan nova:filter UserType
每個(gè)在 Nova 中生成的過濾器都包含了 2 個(gè)方法 : apply
和 options
.apply
方法負(fù)責(zé)按你希望的狀態(tài)修改查詢條件,而 options
方法用來定義過濾器中你要定義的過濾選項(xiàng)。舉個(gè)例子,UserType
過濾器內(nèi)容如下 :
<?php
namespace App\Nova\Filters;
use Illuminate\Http\Request;
use Laravel\Nova\Filters\Filter;
class UserType extends Filter
{
/**
* 申明這個(gè)過濾器的查詢條件.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Database\Eloquent\Builder $query
* @param mixed $value
* @return \Illuminate\Database\Eloquent\Builder
*/
public function apply(Request $request, $query, $value)
{
return $query->where('type', $value);
}
/**
* 獲取過濾器的可選性.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function options(Request $request)
{
return [
'管理員' => 'admin',
'編輯' => 'editor',
];
}
}
options
方法返回一個(gè)鍵值對(duì)數(shù)組。數(shù)組的鍵是展示給使用者選擇的文本。數(shù)組的值則會(huì)在選擇后作為 $value
參數(shù)傳入 apply
方法。在示例中,我們的過濾器定義了 2 個(gè)選項(xiàng) : admin
和 editor
.
如示例所見,你可以利用這個(gè)方式傳入其他你希望的值到 apply
方法中以完成按條件過濾列表數(shù)據(jù). apply
方法應(yīng)該始終返回一個(gè)查詢實(shí)例
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: