Tips & Tricks¶
How to get Sylius Resource configuration from the container?¶
There are some exceptions to the instructions of customizing models. In most cases the instructions
will get you exactly where you need to be, but when for example attempting to customize the ShopUser
model, you will see an error:
In ArrayNode.php line 331:
Unrecognized option "classes" under "sylius_user.resources.user". Available option is "user".
In this case, when customizing the ShopUser
model and using the following resource configuration:
sylius_user:
resources:
user:
classes:
model: App\Entity\ShopUser
The error is displayed because the user entity is extended multiple times in the user bundle. To find out the correct configuration, please run the following command:
bin/console debug:config SyliusUserBundle
The output of that command should look similar to:
Current configuration for "SyliusUserBundle"
============================================
sylius_user:
driver: doctrine/orm
resources:
admin:
user:
classes:
model: Sylius\Component\Core\Model\AdminUser
repository: Sylius\Bundle\UserBundle\Doctrine\ORM\UserRepository
form: Sylius\Bundle\CoreBundle\Form\Type\User\AdminUserType
interface: Sylius\Component\User\Model\UserInterface
controller: Sylius\Bundle\UserBundle\Controller\UserController
factory: Sylius\Component\Resource\Factory\Factory
...
shop:
user:
classes:
model: Sylius\Component\Core\Model\ShopUser
repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\UserRepository
form: Sylius\Bundle\CoreBundle\Form\Type\User\ShopUserType
interface: Sylius\Component\User\Model\UserInterface
controller: Sylius\Bundle\UserBundle\Controller\UserController
factory: Sylius\Component\Resource\Factory\Factory
...
oauth:
user:
classes:
model: Sylius\Component\User\Model\UserOAuth
interface: Sylius\Component\User\Model\UserOAuthInterface
controller: Sylius\Bundle\ResourceBundle\Controller\ResourceController
factory: Sylius\Component\Resource\Factory\Factory
...
As you can see there is an extra layer in the configuration here.
Since in this example we’re attempting to customize the ShopUser
entity, we need to use the following
configuration in config/packages/_sylius.yaml
:
sylius_user:
resources:
shop:
user:
classes:
model: App\Entity\ShopUser
This is how you should always be able to find out the correct configuration.