Filament:使用自定义逻辑选择下拉搜索框
您可以使用 ->getSearchResultsUsing()
方法自定义Select下拉列表以搜索任何您想要的自定义逻辑。
此示例显示了如何在用户在“选择搜索”框中键入任何内容后,通过电子邮件/电话/姓名搜索客户。
Forms\Components\Select::make('user_id')
->label('Customer')
->getSearchResultsUsing(function (string $search): array {
return User::query()
->where(function (Builder $builder) use ($search) {
$searchString = "%$search%";
$builder->where('name', 'like', $searchString)
->orWhere('email', 'like', $searchString)
->orWhere('phone', 'like', $searchString);
})
->where('role_id', Role::CUSTOMER)
->limit(50)
->get()
->mapWithKeys(function (User $customer) {
return [$customer->id => $customer->name];
})
->toArray();
})
本作品采用《CC 协议》,转载必须注明作者和本文链接