我试图使用排他策略,但我一直得到一个"注释不存在,或不能自动加载"的错误。
下面是抛出的确切错误:
我的代码如下:[semantic Error]注释类中的"@JMS'SerializerBundle'Annotation'ExclusionPolicy"Acme'DemoBundle'Entity'Attributes不存在或不可能存在可以。
namespace Acme'DemoBundle'Entity;
use Doctrine'ORM'Mapping as ORM;
use Symfony'Component'Validator'Constraints;
use JMS'SerializerBundle'Annotation'ExclusionPolicy;
use JMS'SerializerBundle'Annotation'Expose;
/**
* Acme'DemoBundle'Entity'Attributes
*
* @ORM'Table()
* @ORM'Entity(repositoryClass="Acme'DemoBundle'Entity'AttributesRepository")
*
* @ExclusionPolicy("all")
*/
class Attributes
{
...
}
您的问题是由使用错误的命名空间引起的。
代替:
use JMS'SerializerBundle'Annotation'ExclusionPolicy;
use JMS'SerializerBundle'Annotation'Expose;
应该是:
use JMS'Serializer'Annotation'ExclusionPolicy;
use JMS'Serializer'Annotation'Expose;
注意"Bundle"不见了。在Ver 0.11中,它被提取到自己的存储库中。
变更日志如下:
<
- 名称空间变化/strong>
核心库已被提取到专用存储库
schmittjoh/serializer
使它更容易在任何类型的PHP中重用项目,而不仅仅是Symfony2项目。这导致了几个名称空间的变化。您可以通过执行这些操作来调整您的项目替换项(按顺序):
- JMS'SerializerBundle'Serializer -> JMS'Serializer
- JMS'SerializerBundle -> JMS'Serializer
JMS'Serializer'DependencyInjection -> JMS'SerializerBundle'DependencyInjection
依赖性变化
你可能需要增加jms/di-extra-bundle的版本Jms/security-extra-bundle取决于你的稳定性设置。有时还需要运行两次编写器更新,因为作曲家求解算法中的一个bug。