Coder Social home page Coder Social logo

Comments (6)

patrickbrouwers avatar patrickbrouwers commented on July 20, 2024

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.

CImrie avatar CImrie commented on July 20, 2024

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:

  1. 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.
  2. 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.

patrickbrouwers avatar patrickbrouwers commented on July 20, 2024

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.

CImrie avatar CImrie commented on July 20, 2024

@patrickbrouwers Excellent, thanks for the update. Look forward to seeing how it will be implemented :)

from fluent.

najdias avatar najdias commented on July 20, 2024

@CImrie Thanks for the fix but maybe I will wait to be fully supported as @patrickbrouwers said.
Thank you both.

from fluent.

patrickbrouwers avatar patrickbrouwers commented on July 20, 2024

With the version 1.1 release, Fluent officially supports gedmo extensions. Please let us know your experience :)

from fluent.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.