68 lines
1.5 KiB
PHP
68 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Nova\Resources\User;
|
|
|
|
use App\Models\User;
|
|
use App\Nova\Resource;
|
|
use Laravel\Nova\Fields\ID;
|
|
use Laravel\Nova\Http\Requests\NovaRequest;
|
|
|
|
class UserSearchResource extends Resource
|
|
{
|
|
/**
|
|
* The model the resource corresponds to.
|
|
*
|
|
* @var class-string<\App\Models\Resources\User\UserSearchResource>
|
|
*/
|
|
public static $model = User::class;
|
|
|
|
/**
|
|
* The debounce amount (in seconds) to use when searching this resource.
|
|
*
|
|
* @var float
|
|
*/
|
|
public static $debounce = 1;
|
|
|
|
/**
|
|
* The number of results to display when searching for relatable resources without Scout.
|
|
*
|
|
* @var int|null
|
|
*/
|
|
public static $relatableSearchResults = 3;
|
|
|
|
/**
|
|
* Get the value that should be displayed to represent the resource.
|
|
*/
|
|
public function title(): string
|
|
{
|
|
return $this->fullname.' - '.$this->email;
|
|
}
|
|
|
|
/**
|
|
* Get the search result subtitle for the resource.
|
|
*/
|
|
public function subtitle(): string
|
|
{
|
|
return $this->phone_number ? mask_phone($this->phone_number) : '-';
|
|
}
|
|
|
|
/**
|
|
* The columns that should be searched.
|
|
*
|
|
* @var array
|
|
*/
|
|
public static $search = [
|
|
'first_name', 'last_name', 'phone_number', 'email',
|
|
];
|
|
|
|
/**
|
|
* Get the fields displayed by the resource.
|
|
*/
|
|
public function fields(NovaRequest $request): array
|
|
{
|
|
return [
|
|
ID::make()->sortable(),
|
|
];
|
|
}
|
|
}
|