Download the PHP package shiftonelabs/laravel-cascade-deletes without Composer

On this page you can find all versions of the php package shiftonelabs/laravel-cascade-deletes. 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 laravel-cascade-deletes

laravel-cascade-deletes

Latest Version on Packagist Build Status Coverage Status Quality Score Total Downloads

This Laravel/Lumen package provides application level cascading deletes for the Laravel's Eloquent ORM. When referential integrity is not, or cannot be, enforced at the data storage level, this package makes it easy to set this up at the application level.

For example, if you are using SoftDeletes, or are using polymorphic relationships, these are situations where foreign keys in the database cannot enforce referential integrity, and the application needs to step in. This package can help.

Versions

This package has been tested on Laravel 4.1 through Laravel 10.x, though it may continue to work on later versions as they are released. This section will be updated to reflect the versions on which the package has actually been tested.

This readme has been updated to show information for the most currently supported versions (9.x - 10.x). For Laravel 4.1 through Laravel 8.x, view the 1.x branch.

Install

Via Composer

Usage

Enabling cascading deletes can be done two ways. Either:

Once that is done, define the $cascadeDeletes property on the Model. The $cascadeDeletes property should be set to an array of the relationships that should be deleted when a parent record is deleted.

Now, when a parent record is deleted, the defined child records will also be deleted. Furthermore, in the case where a child record also has cascading deletes defined, the delete will cascade down and delete the related records of the child, as well. This will continue on until all children, grandchildren, great grandchildren, etc. are deleted.

Additionally, all cascading deletes are performed within a transaction. This makes the delete an "all or nothing" event. If, for any reason, a child record could not be deleted, the transaction will rollback and no records will be deleted at all. The Exception that caused the child not to be deleted will bubble up to where the delete() originally started, and will need to be caught and handled.**

Code Example

User Model:

Profile Model:

In the example above, the CascadesDeletes trait has been added to the User model to enable cascading deletes. Since the user is considered a parent of posts and profiles, these relationships have been added to the $cascadeDeletes property. Additionally, the Profile model has been set up to delete its related address records.

Given this setup, when a user record is deleted, all related posts and profile records will be deleted. The delete will also cascade down into the profile record, and it will delete all the addresses related to the profile, as well.

If any one of the posts, profiles, or addresses fails to be deleted, the transaction will roll back and no records will be deleted, including the original user record.**

** Transaction rollback will only occur if the database being used actually supports transactions. Most do, but some do not. For example, the MySQL InnoDB engine supports transactions, but the MySQL MyISAM engine does not.

SoftDeletes

This package also works with Models that are setup with SoftDeletes.

When using SoftDeletes, the delete method being used will cascade to the rest of the deletes, as well. That is, if you delete() a record, all the child records will also use delete(); if you forceDelete() a record, all the child records will also use forceDelete().

The deletes will also cross the boundary between soft deletes and hard deletes. In the code example above, the the User record was setup to soft delete, but the Profile record was not, then when a user is deleted, the User record would be soft deleted, but the child Profile record would be hard deleted, and vice versa.

Notes

Contributing

Contributions are welcome. Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of laravel-cascade-deletes with dependencies

PHP Build Version
Package Version
Requires php Version >=8.0.2
illuminate/database Version >=9.0
illuminate/events Version >=9.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 shiftonelabs/laravel-cascade-deletes contains the following files

Loading the files please wait ....