Sonata 产品列表错误(Sonata E-Commerce Bundle)
Posted
技术标签:
【中文标题】Sonata 产品列表错误(Sonata E-Commerce Bundle)【英文标题】:Sonata Product list error(Sonata E-Commerce Bundle) 【发布时间】:2017-02-19 05:16:09 【问题描述】:我正在使用奏鸣曲电子商务捆绑包。成功安装捆绑包及其依赖项后,我按预期获得了管理仪表板页面。
但是,当我单击产品的“添加新”选项时,我得到一个空白块,没有字段或按钮。这是屏幕截图
但这不是它。当我单击产品的“列表”选项时,出现以下错误
An exception occurred while executing 'SELECT count(DISTINCT p0_.id) AS sclr_0 FROM product__product p0_ LEFT JOIN product__product_category p1_ ON p0_.id = p1_.product_id LEFT JOIN classification__category c2_ ON p1_.category_id = c2_.id LEFT JOIN product__product_collection p3_ ON p0_.id = p3_.product_id LEFT JOIN classification__collection c4_ ON p3_.collection_id = c4_.id WHERE p0_.product_type IN ()':
SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的 ')' 附近使用正确的语法
在网上搜索时,我在 github 上发现了一个同样问题的帖子 (https://github.com/sonata-project/ecommerce/issues/9)。我遵循了建议的解决方案,即。
使用php app/console sonata:product:generate Bowl sonata.ecommerce_demo.product.bowl
创建了一个产品类型(碗)
已导入资源
创建app/config/sonata/sonata_product.yml
,如文档中所示
最后让 Bowl 类继承 Product 类
我还是遇到同样的错误。
这是我的 Bowl.php
<?php
/*
* This file is part of the <name> project.
*
* (c) <yourname> <youremail>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Application\Sonata\ProductBundle\Entity;
//use Sonata\ProductBundle\Entity\Product as Product;
/**
* This file has been generated by the Sonata product generation command ( https://sonata-project.org/ )
*
* References :
* working with object : http://www.doctrine-project.org/projects/orm/2.0/docs/reference/working-with-objects/en
*
* @author <yourname> <youremail>
*/
class Bowl extends Product
/**
* @var integer $id
*/
protected $id;
/**
* Get id
*
* @return integer $id
*/
public function getId()
return $this->id;
/**
* @param int $id
*/
public function setId($id)
$this->id = $id;
有什么想法吗?
【问题讨论】:
【参考方案1】:想通了:
创建产品类型 (http://sonata-project.org/bundles/ecommerce/master/doc/reference/tutorials/create-product.html) php app/console sonata:product:generate Bowl sonata.ecommerce_demo.product.bowl
导入所有资源
完成后,编辑 src/Application/Sonata/ProductBundle/Entity/Bowl.php 使其继承 Product 类。
碗类扩展产品
注意:不要忘记导入 sonata_product.yml(文档中没有提到)。添加 - resource: sonata/sonata_product.yml 到您的 config.yml
【讨论】:
以上是关于Sonata 产品列表错误(Sonata E-Commerce Bundle)的主要内容,如果未能解决你的问题,请参考以下文章
Sonata Admin 的 sonata_type_model 字段的自定义选项列表
Symfony 4 + Sonata + Sonata Doctrine ORM Admin Bundle:错误:没有要处理的元数据类
通过 sonata_type_collection 字段将 sonata_media_type 用作 1:N 时出现 500 错误
编译错误:声明 Sonata\Translation Bundle\Block\LocaleSwitcherBlockService::validate Block()