Git Product home page Git Product logo

Comments (1)

mark-gerarts avatar mark-gerarts commented on June 18, 2024

Thank you for the report. This isn't the expected behaviour, but I can't seem to reproduce it. Can you provide a minimal working example where you encounter this problem?

I've quickly tried the following, but this works as expected:

<?php

use AutoMapperPlus\AutoMapper;
use AutoMapperPlus\Configuration\AutoMapperConfig;
use AutoMapperPlus\MappingOperation\Operation;

class EntityA {
    private $name;
    private $entityB;

    public function __construct(string $name, EntityB $b) {
        $this->name = $name;
        $this->entityB = $b;
    }
}

class EntityB {
    private $name;

    public function __construct(string $name) {
        $this->name = $name;
    }
}

class ModelA {
    public $name;
    public $modelB;
}

class ModelB {
    public $name;
}

$entity_b = new EntityB('entity b');
$entity_a = new EntityA('entity a', $entity_b);

$config = new AutoMapperConfig();
$config->registerMapping(EntityA::class, ModelA::class)
    // This is needed because the properties have different names. Without it
    // model B would be null (as expected).
    ->forMember('modelB', Operation::fromProperty('entityB')->mapTo(ModelB::class));
$config->registerMapping(EntityB::class, ModelB::class);
$mapper = new AutoMapper($config);

$result = $mapper->map($entity_a, ModelA::class);

// Result:
// ModelA {
//  name: "entity a"
//  modelB: ModelB {
//    name: "entity b"
//  }
// }

Also: which version of the library are you using? Since you mention Doctrine, are you using the bundle?

from automapper-plus.

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.