Sonata捆绑问题[产品包]

时间:2015-01-27 10:17:18

标签: php symfony sonata

我试图在Symfony 2.3上设置Sonata Bundles电子商务。

我按照提及here的安装步骤进行操作,但在尝试加载请求app_dev.php的页面时收到错误。

这是错误

  

FatalErrorException:编译错误:声明Sonata \ ProductBundle \ Entity \ BaseProduct :: validateOneMainCategory()必须与Sonata \ Component \ Product \ ProductInterface :: validateOneMainCategory(Symfony \ Component \ Validator \ Context \ LegacyExecutionContext $ context)兼容/xxx/xx/xx/xxxx/vendor/sonata-project/ecommerce/src/ProductBundle/Entity/BaseProduct.php第28行

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我在使用sonata admin bundle之前收到此错误消息我认为你要注意文件顶部的uses语句。你需要添加相应的use语句。看看ProductInterface你会找到合适的要使用的文件。

答案 1 :(得分:0)

我在ProductInterface中有这个

    use Symfony\Component\Validator\Context\LegacyExecutionContext;

/**
     * Validates if product has one main category
     *
     * @param LegacyExecutionContext $context
     *
     * @return void
     */
    public function validateOneMainCategory(LegacyExecutionContext $context);

在BaseProduct.php中

use Symfony\Component\Validator\ExecutionContext;

   /**
     * {@inheritdoc}
     */
    public function validateOneMainCategory(LegacyExecutionContext $context)
    {
        if ($this->getCategories()->count() == 0) {
            return;
        }

        if (!$this->hasOneMainCategory()) {
            $context->addViolation('sonata.product.must_have_one_main_category');
        }
    }