Skip to content
This package allow you to include relationship columns into Laravel Nova search query.
Branch: master
Clone or download
Latest commit dc04326 Mar 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src formatting Mar 15, 2019
.gitignore Init Sep 1, 2018
composer.json Init Sep 1, 2018
readme.md Separate global search Dec 18, 2018
screenshot.png Init Sep 1, 2018

readme.md

Search relationships in Laravel Nova

This package allows you to include relationship columns into Laravel Nova search query.

Screenshot

screenshot of the search relations tool

Installation

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;

Usage

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'],
];

Global search

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.

Nested relationships

You may search nested relationships using dot notation.

/**
 * The relationship columns that should be searched.
 *
 * @var array
 */
public static $searchRelations = [
    'user.country' => ['code'],
];
You can’t perform that action at this time.