我想添加到我的帖子图片,但我有错误。在我的日志中
错误 - 无法创建对象:SonataTest \ ModelBundle \ Entity \ Post 上下文:{“exception”:“Object(Sonata \ AdminBundle \ Exception \ ModelManagerException)”,“previous_exception_message”:“执行'INSERT INTO Post(标题,created_at,updated_at,body,media_id)VALUES(?,?)时发生异常,?,?,?)'与params [\“FirstTitle \”,“2015-07-26 11:47:38 \”,“2015-07-26 11:47:38 \”,“FirstTitle \“,15]:\ n \ n \ nSQLSTATE [42S02]:未找到基表或视图:1146表'sonata.Post'不存在”}
我的config.yml
doctrine:
.......
orm:
auto_generate_proxy_classes: "%kernel.debug%"
entity_managers:
default:
auto_mapping: true
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~
sonata_media:
default_context: default
db_driver: doctrine_orm
contexts:
default:
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
formats:
small: { width: 100 , quality: 70}
big: { width: 500 , quality: 70}
cdn:
server:
path: /uploads/media # http://media.sonata-project.org/
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
我的实体
class Post
{
..............
/**
* @var string
*
* @ORM\Column(name="body", type="text")
*/
private $body;
/**
* @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", cascade={"all"})
* @ORM\JoinColumn(name="media_id", referencedColumnName="id")
*/
private $img;
........
}
我的控制器
class PostAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text', array('label' => 'Post Title'))
->add('body')
->add('img', 'sonata_media_type', array('provider' => 'sonata.media.provider.image',
'context' => 'posts'))
;
}
.....
}
我做错了什么?在我的数据库中我有表格和媒体
答案 0 :(得分:0)
您的表名可能存在案例问题,您尚未在实体中添加@ORM\Table(name="")
注释,而在数据库中可能有表名post
(小写)但是当奏鸣曲时/ doctrine在没有@ORM\Table
的情况下生成查询,它使用实体名称为Post
且资本 P
,如果是这样,您可以在实体中提供表格
/**
* Post
*
* @ORM\Table(name="post")
* @ORM\Entity
*/
class Post {
//..............
/**
* @var string
*
* @ORM\Column(name="body", type="text")
*/
private $body;
/**
* @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", cascade={"all"})
* @ORM\JoinColumn(name="media_id", referencedColumnName="id")
*/
private $img;
//........
}