我正在尝试在我正在构建的 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 正常运行。
任何方向将不胜感激!