marionnewlevant / agnostic-fetch
uniform syntax for fetching elements whether or not they have been eager loaded
Installs: 13 420
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 3
Open Issues: 3
Type:craft-plugin
Requires
- craftcms/cms: ^3.0.0-RC1
README
Agnostic Fetch plugin for Craft CMS 3.x
Craft plugin that provides uniform syntax for fetching elements whether or not they have been eager loaded
Installation
To install Agnostic Fetch, follow these steps:
- Download & unzip the file, rename the unzipped folder to
agnosticfetch
and place theagnosticfetch
folder into yourcraft/plugins
folder - -OR- do a
git clone https://github.com/marionnewlevant/craft3-agnositic_fetch.git
directly into yourcraft/plugins
folder, and rename toagnosticfetch
. You can then update it withgit pull
- -OR- install with Composer via
composer require marionnewlevant/agnostic-fetch
from your project folder - Install plugin in the Craft Control Panel under Settings > Plugins
- The plugin folder should be named
agnosticfetch
for Craft to see it.
Agnostic Fetch works on Craft 3.x.
Agnostic Fetch Overview
The code to fetch the elements from a Craft Element Query is different when the elements have been eager-loaded. For example, to get the first element of a non eagerly loaded field, someField.one()
, but for an eagerly loaded field, someField[0]
(and that doesn't even get into the error checking). With Agnostic Fetch, you can do someField | one
(or one(someField)
or craft.agnosticfetch.one(someField)
).
The Agnostic Fetch functions are available as twig filters, as twig functions, and as craft variables.
Using Agnostic Fetch
all
Use any of:
- someField | all
- all(someField)
- craft.agnosticfetch.all(someField)
one
Use any of:
- someField | one
- one(someField)
- craft.agnosticfetch.one(someField)
nth
Use any of:
- someField | nth(index)
- nth(someField, index)
- craft.agnosticfetch.nth(someField, index)
(index is based from 0
)
ids
Use any of:
- someField | ids
- ids(someField)
- craft.agnosticfetch.ids(someField)
count
Use any of:
- someField | count
- count(someField)
- craft.agnosticfetch.count(someField)
isEager
In addition to the fetching functions, isEager
will tell you whether elements have been eager loaded or not.
Use any of:
- someField | isEager
- isEager(someField)
- craft.agnosticfetch.isEager(someField)
Brought to you by Marion Newlevant