2

我正在尝试在我正在构建的 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 manager 服务?

所以我还包含了 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 是解耦的,我可以直接使用它们。但似乎注释(或 xml 定义)不存在以使 Doctrine 正常运行。

任何方向将不胜感激!

4

1 回答 1

2

Laravel 和 symfony 完全不同。你不能在 laravel 项目中使用 symfony 包。如果你想使用 Sylius,你必须使用 Symfony 框架。如果你想使用 laravel,你必须搜索另一个电子商务平台。

于 2014-07-22T07:39:10.053 回答