Download the PHP package illuminatech/sync-many-attribute without Composer

On this page you can find all versions of the php package illuminatech/sync-many-attribute. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sync-many-attribute

Sync Eloquent Many-to-Many via Array Attribute


This extension allows control over Eloquent many-to-many relations via array attributes.

For license information check the LICENSE-file.

Latest Stable Version Total Downloads Build Status

Installation

The preferred way to install this extension is through composer.

Either run

or add

to the require section of your composer.json.

Usage

This extension allows control over Eloquent many-to-many relations via array attributes. Each such attribute matches particular BelongsToMany relation and accepts array of related model IDs. Relations will be automatically synchronized during model saving.

Note: in general such approach makes a little sense, since Eloquent already provides fluent interface for many-to-many relation synchronization. However, this extension make come in handy while working with 3rd party CMS like Nova, where you have a little control over model saving and post processing. Also it may simplify controller code, removing relation operations in favor to regular attribute mass assignment.

In order to use the feature you should add \Illuminatech\SyncManyAttribute\SyncManyToManyAttribute trait to your model class and declare syncManyToManyAttributes() method, defining attributes for relation synchronization. This method should return an array, which each key is the name of the new virtual attribute and value is the name of the relation to be synchronized.

For example:

Usage example:

You may use sync attributes during HTML form input composition. For example:

Controller code example:

Note: remember you need to add the names of attribute for many-to-many synchronization to \Illuminate\Database\Eloquent\Model::$fillable in order to make them available for mass assignment.

Pivot attributes setup

You may setup the pivot attributes, which should be saved during each relation synchronization. To do so, you should define the sync attribute as an array, which key defines relation name and value - the pivot attributes. \Closure can be used here for definition of particular pivot attribute value or entire pivot attributes set. For example:

You may use \Illuminatech\SyncManyAttribute\ManyToManyAttribute to create sync attribute definition in more OOP style:

Defined pivot attributes will be automatically saved during relation synchronization on model saving:

Nova Integration

One of the main benefit of this extension is support of 3rd party CMS like Nova. You may use sync attributes, allowing user to setup many-to-many relation directly from create/update form, instead of operating separated listing from details page.

You can create input for BelongsToMany relation as multiple select or checkbox list. Packages like fourstacks/nova-checkboxes might be used for such fields. The final Nova resource may look like following:


All versions of sync-many-attribute with dependencies

PHP Build Version
Package Version
Requires illuminate/database Version ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package illuminatech/sync-many-attribute contains the following files

Loading the files please wait ....