LaravelPackages.net
Acme Inc.
Toggle sidebar
metasync-site/nova-belongs-to-many

A Laravel Nova field for searchable belongs-to-many relationships

2.852
3
1.0.6
About metasync-site/nova-belongs-to-many

metasync-site/nova-belongs-to-many is a Laravel package for a laravel nova field for searchable belongs-to-many relationships. It currently has 3 GitHub stars and 2.852 downloads on Packagist (latest version 1.0.6). Install it with composer require metasync-site/nova-belongs-to-many. Discover more Laravel packages by metasync-site or browse all Laravel packages to compare alternatives.

Last updated

Laravel Nova BelongsToMany Searchable Field

A Laravel Nova field that provides a searchable interface for belongs-to-many relationships with the ability to create new related resources.

screenshot of the search relations tool

Requirements

  • PHP >=8.2
  • Laravel 11.x | 12.x
  • Laravel Nova 4.x | 5.x

Installation

You can install the package via composer:

composer require metasync-site/nova-belongs-to-many

Usage

use MetasyncSite\NovaBelongsToMany\BelongsToManySearchable;

 BelongsToManySearchable::make('Products')
            ->relationshipConfig(
                resourceClass: ProductResource::class,
                relationName: 'products',
            ),

Full api

use MetasyncSite\NovaBelongsToMany\BelongsToManySearchable;

public function fields(NovaRequest $request)
{
    return [
        BelongsToManySearchable::make('Products')
            ->relationshipConfig(
                resourceClass: ProductResource::class,
                relationName: 'products',
                pivotTable: 'category_product',
                foreignPivotKey: 'category_id',
                relatedPivotKey: 'product_id',
                displayCallback: fn($product) => "{$product->name} (${$product->price})"
            )
            ->withCreateButton(true, 'Add New Product'),
    ];
}

Features

  • 🔍 Searchable interface for belongs-to-many relationships
  • ✨ Custom display formatting with callback support
  • ➕ Optional "Create New" button with modal
  • 🎨 Dark mode support
  • 🎯 Type-safe implementation
  • 🔄 Automatic pivot table management

Configuration Options

Required Parameters

  • resourceClass: The Nova resource class for the related model
  • relationName: The name of the relationship method on your model
  • pivotTable: The name of the pivot table
  • foreignPivotKey: The foreign key of the parent model in the pivot table
  • relatedPivotKey: The foreign key of the related model in the pivot table

Optional Parameters

  • displayCallback: Customize how each option is displayed
  • withCreateButton: Enable the create button with an optional custom label

Security Vulnerabilities

If you discover any security vulnerabilities, please email [email protected]

Credits

Star History Chart