Download the PHP package rapidwebltd/improved-polymorphic-eloquent-builder without Composer

On this page you can find all versions of the php package rapidwebltd/improved-polymorphic-eloquent-builder. 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 improved-polymorphic-eloquent-builder

Improved Polymorphic Eloquent Builder

Packagist

Attempting to use whereHas queries with standard Eloquent polymorphic relationships will fail, due to Eloquent being unable to determine the correct model to retrieve. You may receive an error similar to the one below as Eloquent tries to build the query using columns from the model without including its table name.

The 'Improved Polymorphic Eloquent Builder' is a class which extends the Eloquent Builder class that is built in to Laravel 5.1. It enables limited use of the whereHas method to query Eloquent polymorphic relationships.

Requirements

You must be using Laravel 5.1 as your framework and Eloquent as your ORM.

Installation

Simply require this package, using Composer, in the root directory of your project.

Then change any Eloquent models using polymorphic relationships to extend the \RapidWeb\ImprovedPolymorphicEloquentBuilder\Model class. This will usually be any model(s) containing methods which return morphTo() relationship(s). An example class is shown below.

Usage

When performing a whereHas query, you must specify the morph types as the 5th argument. Morph types refers to an array of the polymorphic types you wish to filter by. These should be presented as strings equal to one or more of the possible values the [...]_type field of the polymorphic relationship in question.

The example below selects all variation records that have related model record of type bags, with a brand_id of 2.

A database structure for this example would be similar to the following. The polymorphic fields are highlighted in bold.

variations bags sunglasses
id id id
model_type ('bags', 'sunglasses', etc.) brand_id brand_id
model_id material_id lens_colour_id

All versions of improved-polymorphic-eloquent-builder with dependencies

PHP Build Version
Package Version
Requires php Version >=5.5.9
laravel/framework Version 5.1.*
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 rapidwebltd/improved-polymorphic-eloquent-builder contains the following files

Loading the files please wait ....