将Sylius包集成到Laravel项目中

时间:2014-07-22 00:31:04

标签: symfony laravel doctrine-orm sylius

我正在尝试在我正在构建的Laravel项目中使用一些Sylius包。我已经使用composer将包添加到我的项目中,并且这些类似乎可以自动加载。

现在我想用它做点什么。让我们从Sylius文档中得到一个简单的例子:

public function myAction()
{
    $repository = $this->container->get('sylius.repository.address');
    $manager = $this->container->get('sylius.manager.address'); // Alias to the appropriate doctrine manager service.

    $address = $repository->createNew();

    $address
        ->setFirstname('John')
        ->setLastname('Doe')
    ;

    $manager->persist($address);
    $manager->flush(); // Save changes in database.
}

我想在Laravel中重现这样的事情。我已经创建了一个简单的测试路线来尝试这个,但我的问题是:

  • 如何获取存储库?
  • 如何获得Doctrine经理服务?

所以我还包括了laravel-doctrine包以试图获得一个管理器服务,然后我只是手动创建了一个Product对象,所以现在我有:

Route::get('test', function() {
  $entityManager = new Doctrine;

  $product = new \Sylius\Component\Core\Model\Product;
  $product->setName('Bla');

  Doctrine::persist($product);
  Doctrine::flush();

  dd($product);
});

这会产生错误:Class "Sylius\Component\Core\Model\Product" sub class of "Sylius\Component\Product\Model\Product" is not a valid entity or mapped super class.

我不确定下一步该去哪儿。我对Doctrine的理解是有限的,但我的理解是Sylius组件与Symfony分离,我可以使用它们。但似乎Doctrine无法正确运行注释(或xml定义)。

任何方向都会受到赞赏!

1 个答案:

答案 0 :(得分:2)

Laravel和symfony完全不同。您不能在laravel项目中使用symfony包。如果要使用Sylius,则必须使用Symfony框架。如果您想使用laravel,则必须搜索其他电子商务平台。