我正在尝试在我正在构建的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中重现这样的事情。我已经创建了一个简单的测试路线来尝试这个,但我的问题是:
所以我还包括了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定义)。
任何方向都会受到赞赏!
答案 0 :(得分:2)
Laravel和symfony完全不同。您不能在laravel项目中使用symfony包。如果要使用Sylius,则必须使用Symfony框架。如果您想使用laravel,则必须搜索其他电子商务平台。