Search
Create a comparison
Compare Sizes
Register
Sign in
Sign out
English
Français
Español
History of
Eloquent
Last update
2017-12-21 16:45:09
Creation date
2016-10-18 22:11:55
Romans Malinovskis
on 2017-12-21 16:45:09
Report
Transparent support for NoSQL
no Eloquent is built on Query Builder. Perhaps moloquent? Also - Through Caching backend, but not as ORM native persistence.
Romans Malinovskis
on 2017-12-20 17:43:38
Report
Transparent support for NoSQL
no Eloquent is built on Query Builder. Perhaps moloquent?
Romans Malinovskis
on 2017-12-19 23:25:45
Report
Admin extends User, adds criteria (is_admin=1)
no
Admin extends User, adds accessible fields
no
Romans Malinovskis
on 2017-12-19 21:41:37
Report
Bypass persistence mapping
yes ?? (e..g prevent date from being transformed into Carbon)
Romans Malinovskis
on 2017-12-19 21:22:55
Report
full support for OR conditions
- Partial
Romans Malinovskis
on 2016-10-26 15:42:23
Report
Support model-level criteria
- Global Scope (querying only)
Expression-based condition
yes through Query Builder
Romans Malinovskis
on 2016-10-21 18:57:20
Report
Use Domain logic in multi-record update
no
Model can define relation to other Model
yes Relations
Romans Malinovskis
on 2016-10-19 01:41:13
Report
Editor
public
Viewer
public
Romans Malinovskis
on 2016-10-19 01:40:50
Report
Multi-persistence join
no
UNION existing models
no
Multi-persistence UNION
no
Revert action (undo) and replay (redo)
no
Store incremental revisions
yes
UI extensions
no
Romans Malinovskis
on 2016-10-19 01:38:35
Report
Specify fields to load
no Fields load with SELECT *
Romans Malinovskis
on 2016-10-19 01:33:39
Report
UI Widget can fetch list of Model Fields
no Would have to manually specify fields.
UI Widget can get Field type, default value, caption, hint
no
field storing reference to another Model can map into DropDown
no Must manually specify object with lists() method.
Implementation Strategy
Eloquent is designed to work with MVC engines, where view is mandatory and would be defining how model properties fit into your HTML.
Get All Data (2x array)
yes
Associative Array (id=>value)
yes lists()
Single row
yes
Single Value
yes
Single Column
yes
Iterator
yes
Bypass persistence mapping
- ?? (e..g prevent date from being transformed into Carbon)
Romans Malinovskis
on 2016-10-19 01:06:17
Report
One-to-many traversal strategy
Returns array of objects that may either be pre-loaded with record data or only contain IDs (lazy-loaded).
Can be used in Any Framework
yes Through Capsule
Anti-patterns (purposely included)
Eloquent is a God Class; Global functions; DB Conection is global;
How schema is defined?
Model class properties
PDO Support
yes
Transparent support for NoSQL
no Eloquent is built on Query Builder.
How to invoke db-vendor-specific extensions?
yes Through Query Builder / RAW queries.
Field Name Mapping
- Through accessors/3rd party extension
Table Name Mapping
yes Same as model class name by default
Map Entity to SubQuery
no Must be physical table.
Map native types (DateTime)
yes Accessors and Mutators
User-defined types (e.g. "23 USD")
yes Accessors and Mutators
Map property to expression
no Must be physical table
Map field of related Entity ('currency' = currency_id->Model Currency.name)
- Relationship, but only single record.
Map field to sub-query on related entity (Client.balance = Client->orders->sum(total))
no
Soft-delete
yes Trait and Scope
Domain Model Criteria
- Scopes, but not in domain model.
Expression-based condition
no Scopes only affect loading.
Convert Model into Query Object
yes Model is a Query object. See: Model::where()
Raw expression
yes DB::raw()
Nested/Composite Queries/Expressions
no
Reference domain-model field in query
no No fields. Only properties.
field, where, order, limit
yes
Guarded / Fillable properties
yes Prevents "create($_GET)" from messing up important fields.
Admin extends User, adds criteria (is_admin=1)
no Both have to use "User" model.
Admin extends User, adds accessible fields
no Both have to use "Order" model.
Extend model, add Join (Disjoined SubTypes)
no
Entity to join multiple tables (adding new record populates both tables)
no
MongoDB support
no
Neo4j
no
MemCache
- Through Caching backend, but not as ORM native persistence.
Automated Cache
yes
Romans Malinovskis
on 2016-10-19 00:14:16
Report
Save only sends dirty fields
yes
Lazy/Eager-loading
yes
Eager-loading
yes
Romans Malinovskis
on 2016-10-18 22:11:55
Report
Mode
70
Name
Eloquent
Viewer
unlisted
Editor
romans-malinovskis-1mz2ky79
Category
products
Go back to:
Eloquent