Comments (6)
Currently Fluent with Gedmo extensions is not supported yet, we are working on it.
You will have to add both Fluent and annotations driver to the mapping driver chain.
from fluent.
I'm not sure if this is going to be any help or not, but I've spent a fair bit today trying to get my head around Fluent / Gedmo Extensions.
Fixing the error above
To get GedmoExtensions working in a 'hybrid' mode while we wait for Fluent to support them, you can do the following:
- Create your own custom service provider (or alternatively edit the existing one - though not recommended). I placed my one in App\Providers\DoctrineServiceProvider.php, and register this in your config/app.php file.
- Add the following to the boot() method:
AnnotationRegistry::registerFile(base_path('vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php');
This loads the annotations needed to prevent the error
[Doctrine\Common\Annotations\AnnotationException] [Semantical Error] The annotation "@doctrine\ORM\Mapping\MappedSuperclass" in class Gedmo\Translatable\Entity\MappedSuperclass\AbstractPersonalTranslation does not exist, or could not be auto-loaded.
Using the extensions
To get Timestampable working, I then imported 'TimestampableEntity' trait from Gedmo into my Entity, and in the normal Fluent Mapping file for that entity, add the following:
$builder->timestamp('createdAt');
$builder->timestamp('updatedAt');
To get Soft Deletes working, I did a similar thing by importing 'SoftDeleteableEntity'. Make sure to add the following to your mapping:
$builder->timestamp('deletedAt');
Unfortunately Gedmo still expects you to tell it which classes are 'SoftDeleteable' - so you have to place this at the top of any entities you want to use soft deletes on:
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
*/
class MyEntity {
...
--- this is all a bit hacky but hopefully just a temporary fix until they are fully supported.
from fluent.
We are currently working on fully supporting Gedmo extensions. Hope to have it finished this weekend.
Will be as simple as
$builder->timestamps();
$builder->dateTime('createdAt')->timestampable()->onCreate();
from fluent.
@patrickbrouwers Excellent, thanks for the update. Look forward to seeing how it will be implemented :)
from fluent.
@CImrie Thanks for the fix but maybe I will wait to be fully supported as @patrickbrouwers said.
Thank you both.
from fluent.
With the version 1.1 release, Fluent officially supports gedmo extensions. Please let us know your experience :)
from fluent.
Related Issues (20)
- $builder->string('name')->index(); returns an error HOT 3
- The oneToOne relation not exist joinColumn method HOT 6
- findOneBy() and findBy() not working with embedded fields HOT 2
- Access custom types in Mappings HOT 2
- Primary Key by Embeddable Value HOT 3
- Add a boot method to the Mappings HOT 3
- Cannot use enum column type HOT 3
- Null object relationship with builder HOT 1
- hasOne / belongsTo mapping fails schema validation HOT 8
- JSONB option being ignored HOT 1
- How to escape reserved words with Fluent mappping? HOT 2
- Using unique causes a specified key too long exception HOT 2
- Index method not obeying columName() it tries to create the index using the field name instead
- Composer Dependency Issues on Installation HOT 2
- Does this package depend on laravel framework or its components? HOT 1
- Add hardDelete option for softDeleteable fields
- FluentDriver use error with Laravel 8 HOT 2
- doctrine/orm version bump HOT 6
- [Help] How to mapping many-to-many relationships and accessing intermediate table HOT 2
- Support for Laravel 10 - doctrine/persistence upgrade to ^3?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluent.