Package Data | |
---|---|
Maintainer Username: | TitasGailius |
Package Create Date: | 2018-09-01 |
Package Last Update: | 2023-03-22 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-22 15:05:16 |
Package Statistics | |
---|---|
Total Downloads: | 5,764,453 |
Monthly Downloads: | 94,162 |
Daily Downloads: | 3,984 |
Total Stars: | 353 |
Total Watchers: | 5 |
Total Forks: | 33 |
Total Open Issues: | 5 |
This package allows you to include relationship columns into Laravel Nova search query.
composer require titasgailius/search-relations
Next, add Titasgailius\SearchRelations\SearchesRelations
trait to your base resource class App\Nova\Resource
use Titasgailius\SearchRelations\SearchesRelations;
abstract class Resource extends NovaResource
{
use SearchesRelations;
Simply add public static $searchRelations
array to any of your Nova resources.
This array has a relationship name as a key and an array of columns to search for as a value.
/**
* The relationship columns that should be searched.
*
* @var array
*/
public static $searchRelations = [
'user' => ['username', 'email'],
];
You may disable global search for relationship columns by defining $searchRelationsGlobally
property in your nova resource:
/**
* Determine if relations should be searched globally.
*
* @var array
*/
public static $searchRelationsGlobally = false;
When you have disabled global search for relationships, you may still enable it for specific relationships like this:
/**
* Determine if relations should be searched globally.
*
* @var array
*/
public static $searchRelationsGlobally = false;
/**
* The relationship columns that should be searched globally.
*
* @var array
*/
public static $globalSearchRelations = [
'user' => ['email'],
];
Now when searching globally, Laravel Nova is going to ignore relationships declared in $searchRelations
and is going to use $globalSearchRelations
instead.
You may search nested relationships using dot notation.
/**
* The relationship columns that should be searched.
*
* @var array
*/
public static $searchRelations = [
'user.country' => ['code'],
];