Lakion / CmsPlugin

Simple CMS on top of SymfonyCMF for Sylius applications.
http://lakion.com
26 stars 20 forks source link

Grid data driver "doctrine/phpcr-odm" is not supported. #29

Closed Matth-- closed 7 years ago

Matth-- commented 7 years ago

Hi

After doing a clean install i get the following error when trying to navigate to any admin route image

Any idea on how to fix this?

Thanks in advance!

Matth-- commented 7 years ago

I had to include the GridBundle/Resources/config/services/integrations/doctrine/phpcr-odm.xml config file for everything to work.

michalmarcinkowski commented 7 years ago

Reopening since this should be added to installation docs or if possible configured in the bundle. /cc @pamil

gdecorbiac commented 7 years ago

@Matth-- : how do you include the GridBundle/Resources/config/services/integrations/doctrine/phpcr-odm.xmlconfig file ?

@michalmarcinkowski : it seems that you also need to mention the following code in order to complete the installation

sylius_resource:
    drivers:
        - doctrine/orm
        - doctrine/phpcr-odm
Matth-- commented 7 years ago

@gdecorbiac

I don't know if this is the best way to do so but I'm loading the file from my AppExtension (gridloader)

<?php

namespace AppBundle\DependencyInjection;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;

class AppExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');

        $gridLoader = new Loader\XmlFileLoader($container, new FileLocator($container->getParameter('kernel.root_dir') . '/../vendor/sylius/sylius/src/Sylius/Bundle/GridBundle/Resources/config/services/integrations/doctrine'));
        $gridLoader->load('phpcr-odm.xml');
    }
}

If anybody knows a better way to do this...

gdecorbiac commented 7 years ago

thanks a lot @Matth-- for your quick answer !

Matth-- commented 7 years ago

@gdecorbiac

I went trough the gridbundle code and actually you don't need to load the phpcr-odm.xml file.

This piece of code

foreach ($config['drivers'] as $enabledDriver) {
    $loader->load(sprintf('services/integrations/%s.xml', $enabledDriver));
}

Is being executed in the SyliusGridExtension class. It means that you can just enable this in config.yml file. You need to do the same thing for the sylius_resource and the sylius_gridconfig

sylius_grid:
    drivers:
        - doctrine/orm
        - doctrine/phpcr-odm

This means you can ignore my previous comment 😄