laminas-api-tools / api-tools-doctrine

Laminas API Tools Doctrine module
https://api-tools.getlaminas.org/documentation
BSD 3-Clause "New" or "Revised" License
10 stars 21 forks source link

Unable to create entities with dependencies #2

Open weierophinney opened 4 years ago

weierophinney commented 4 years ago

Right now it's not possibile to create entities with dependencies. It's possibile to use the Instantatior but it's not aware of data on creation, so it's not possible if you have something like this:

class User
{
    public function __constructor(string $name)
    {
        $this->name = $name;
    }
}

Of course we could instantiate the entity with an empty string, but it's not the right way and things will be more complicated when a dependecy is needed (imagine a Role).

Should be useful another event that will allow to create entity based on POST data.


Originally posted by @thomasvargiu at https://github.com/zfcampus/zf-apigility-doctrine/issues/313

weierophinney commented 4 years ago

You're wrong. https://github.com/zfcampus/zf-apigility-doctrine/blob/master/src/Server/Resource/DoctrineResourceFactory.php#L102

You can create your own type of instantiator called an Entity Factory to create your entities. If you create a proper Entity Factory it will have access to the request or whatever else you inject it with.


Originally posted by @TomHAnderson at https://github.com/zfcampus/zf-apigility-doctrine/issues/313#issuecomment-399536599

weierophinney commented 4 years ago

Ok. Thank you. The only thing is that I have no access to filtered data or I should call it two times.


Originally posted by @thomasvargiu at https://github.com/zfcampus/zf-apigility-doctrine/issues/313#issuecomment-399539352

weierophinney commented 4 years ago

It will be up to you to configure your Entity Factory. If you need to fetch filtered data you'll probably have to fetch it explicitly in your factory rather than waiting for it to roll around to the resource method.


Originally posted by @TomHAnderson at https://github.com/zfcampus/zf-apigility-doctrine/issues/313#issuecomment-399545026