- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要做的是获得一个 Post(Post Entity) 表单,在那里我可以从另一个实体(文件实体)中选择一张特色图片。
最后,我只想显示“特色图像”类型的文件,但即使我删除了我的 query_builder 我也有一个异常(exception)说:
Class "Site\Backend\Adminbundle\Entity\File" seems not to be a managed Doctrine entity. Did you forget to map it?
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('title')
->add('thumb', 'entity', array(
'class' => 'Site\Backend\Adminbundle\Entity\File',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('f')
//->where('f.state = :state')
//->setParameter('state', $prms['state'])
->orderBy('f.dateUpdated', 'DESC');
}
))
}
<?php
namespace Site\Backend\AdminBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Site\Backend\AdminBundle\Entity\File
*
* @ORM\Table()
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class File {
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var \DateTime
*
* @ORM\Column(name="dateCreated", type="datetime")
*/
private $dateCreated;
/**
* @var \DateTime
*
* @ORM\Column(name="dateUpdated", type="datetime")
*/
private $dateUpdated;
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @Assert\File(maxSize="6000000")
*/
private $file;
/**
* @ORM\Column(type="string", length=255)
*/
public $path;
/**
* @ORM\ManyToOne(targetEntity="TypeFile", inversedBy="files")
*/
private $type;
/**
* @var string
*
* @ORM\OneToMany(targetEntity="Site\Backend\BlogBundle\Entity\Post", mappedBy="thumb")
*/
private $posts;
public function __construct() {
$this->setDateCreated(new \DateTime());
$this->setDateUpdated(new \DateTime());
$this->type = new ArrayCollection();
}
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function preUpload() {
$this->setDateUpdated(new \DateTime());
if (null !== $this->file) {
// do whatever you want to generate a unique name
$this->path = sha1(uniqid(mt_rand(), true)) . '.' . $this->file->guessExtension();
} else {
//throwException($e);
}
}
/**
* @ORM\PostPersist()
* @ORM\PostUpdate()
*/
public function upload() {
if (null === $this->file) {
return;
}
// if there is an error when moving the file, an exception will
// be automatically thrown by move(). This will properly prevent
// the entity from being persisted to the database on error
$this->file->move($this->getUploadRootDir(), $this->path);
unset($this->file);
}
/**
* @ORM\PostRemove()
*/
public function removeUpload() {
if ($file = $this->getAbsolutePath()) {
if (file_exists($file)) {
unlink($file);
}
}
}
public function getAbsolutePath() {
return null === $this->path ? null : $this->getUploadRootDir() . '/' . $this->path;
}
public function getWebPath() {
return null === $this->path ? null : './' . $this->getUploadDir() . '/' . $this->path;
}
protected function getUploadRootDir() {
// the absolute directory path where uploaded documents should be saved
return __DIR__ . '/../../../../../web/' . $this->getUploadDir();
}
protected function getUploadDir() {
// get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view.
return 'uploads/' . $this->type;
}
/**
* Get id
*
* @return integer
*/
public function getId() {
return $this->id;
}
/**
* Set name
*
* @param string $name
* @return File
*/
public function setName($name) {
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName() {
return $this->name;
}
/**
* Set path
*
* @param string $path
* @return File
*/
public function setPath($path) {
$this->path = $path;
return $this;
}
/**
* Get path
*
* @return string
*/
public function getPath() {
return $this->path;
}
public function __toString() {
return $this->name;
}
/**
* Add type
*
* @param Site\Backend\AdminBundle\Entity\TypeFile $type
* @return File
*/
public function addType(\Site\Backend\AdminBundle\Entity\TypeFile $type) {
$this->type[] = $type;
return $this;
}
/**
* Remove type
*
* @param Site\Backend\AdminBundle\Entity\TypeFile $type
*/
public function removeType(\Site\Backend\AdminBundle\Entity\TypeFile $type) {
$this->type->removeElement($type);
}
/**
* Get type
*
* @return Doctrine\Common\Collections\Collection
*/
public function getType() {
return $this->type;
}
/**
* Set type
*
* @param Site\Backend\AdminBundle\Entity\TypeFile $type
* @return File
*/
public function setType(\Site\Backend\AdminBundle\Entity\TypeFile $type = null) {
$this->type = $type;
return $this;
}
public function getFile() {
return $this->file;
}
public function setFile($file) {
$this->file = $file;
}
/**
* Set dateCreated
*
* @param \DateTime $dateCreated
* @return File
*/
public function setDateCreated($dateCreated) {
$this->dateCreated = $dateCreated;
return $this;
}
/**
* Get dateCreated
*
* @return \DateTime
*/
public function getDateCreated() {
return $this->dateCreated;
}
/**
* Set dateUpdated
*
* @param \DateTime $dateUpdated
* @return File
*/
public function setDateUpdated($dateUpdated) {
$this->dateUpdated = $dateUpdated;
return $this;
}
/**
* Get dateUpdated
*
* @return \DateTime
*/
public function getDateUpdated() {
return $this->dateUpdated;
}
/**
* Add posts
*
* @param \Site\Backend\BlogBundle\Entity\Post $posts
* @return File
*/
public function addPost(\Site\Backend\BlogBundle\Entity\Post $posts)
{
$this->posts[] = $posts;
return $this;
}
/**
* Remove posts
*
* @param \Site\Backend\BlogBundle\Entity\Post $posts
*/
public function removePost(\Site\Backend\BlogBundle\Entity\Post $posts)
{
$this->posts->removeElement($posts);
}
/**
* Get posts
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getPosts()
{
return $this->posts;
}
}
<?php
namespace Site\Backend\BlogBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Post
*
* @ORM\Table()
* @ORM\Entity
*/
class Post
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var \DateTime
*
* @ORM\Column(name="dateCreated", type="datetime")
*/
private $dateCreated;
/**
* @var \DateTime
*
* @ORM\Column(name="dateUpdated", type="datetime")
*/
private $dateUpdated;
/**
* @var \DateTime
*
* @ORM\Column(name="datePublished", type="datetime", nullable=true)
*/
private $datePublished;
/**
* @var string
*
* @ORM\Column(name="state", type="string", length=255)
*/
private $state;
/**
* @var string
*
* @ORM\Column(name="content", type="text")
*/
private $content;
/**
* @var Author
* @ORM\ManyToOne(targetEntity="Site\Backend\AdminBundle\Entity\User", inversedBy="posts")
*/
private $author;
/**
* @var Thumb
* @ORM\ManyToOne(targetEntity="Site\Backend\AdminBundle\Entity\File", inversedBy="posts")
*/
private $thumb;
/**
* @var Comments
* @ORM\OneToMany(targetEntity="Comment", mappedBy="post")
*/
private $comments;
/**
* @var Categories
* @ORM\ManyToMany(targetEntity="Category", cascade={"persist"})
*/
private $categories;
/**
* @var Tags
* @ORM\ManyToMany(targetEntity="Tag", cascade={"persist"})
*/
private $tags;
/**
* Constructeur
*/
public function __construct()
{
$this->setDateCreated(new \DateTime());
$this->setDateUpdated(new \DateTime());
$this->comments = new ArrayCollection();
$this->Categories = new ArrayCollection();
$this->tags = new ArrayCollection();
}
public function __toString(){
return $this->title;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set title
*
* @param string $title
* @return Post
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* Get title
*
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* Set dateCreated
*
* @param \DateTime $dateCreated
* @return Comment
*/
public function setDateCreated($dateCreated)
{
$this->dateCreated = $dateCreated;
return $this;
}
/**
* Get dateCreated
*
* @return \DateTime
*/
public function getDateCreated()
{
return $this->dateCreated;
}
/**
* Set dateUpdated
*
* @param \DateTime $dateUpdated
* @return Comment
*/
public function setDateUpdated($dateUpdated)
{
$this->dateUpdated = $dateUpdated;
return $this;
}
/**
* Get dateUpdated
*
* @return \DateTime
*/
public function getDateUpdated()
{
return $this->dateUpdated;
}
/**
* Get datePublished
*
* @return \DateTime
*/
public function getDatePublished()
{
return $this->datePublished;
}
/**
* Set datePublished
*
* @param \DateTime $datePublished
* @return Comment
*/
public function setDatePublished($datePublished)
{
$this->datePublished = $datePublished;
return $this;
}
/**
* Set state
*
* @param string $state
* @return Post
*/
public function setState($state)
{
$this->state = $state;
return $this;
}
/**
* Get state
*
* @return string
*/
public function getState()
{
return $this->state;
}
/**
* Set content
*
* @param string $content
* @return Post
*/
public function setContent($content)
{
$this->content = $content;
return $this;
}
/**
* Get content
*
* @return string
*/
public function getContent()
{
return $this->content;
}
/**
* Set author
*
* @param \Site\Backend\AdminBundle\Entity\User $author
* @return Post
*/
public function setAuthor(\Site\Backend\AdminBundle\Entity\User $author = null)
{
$this->author = $author;
return $this;
}
/**
* Get author
*
* @return \Site\Backend\AdminBundle\Entity\User
*/
public function getAuthor()
{
return $this->author;
}
/**
* Add comments
*
* @param \Site\Backend\BlogBundle\Entity\Comment $comments
* @return Post
*/
public function addComment(\Site\Backend\BlogBundle\Entity\Comment $comments)
{
$this->comments[] = $comments;
return $this;
}
/**
* Remove comments
*
* @param \Site\Backend\BlogBundle\Entity\Comment $comments
*/
public function removeComment(\Site\Backend\BlogBundle\Entity\Comment $comments)
{
$this->comments->removeElement($comments);
}
/**
* Get comments
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getComments()
{
return $this->comments;
}
/**
* Add Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
* @return Post
*/
public function addCategory(\Site\Backend\BlogBundle\Entity\Category $category)
{
$this->categories[] = $category;
return $this;
}
/**
* Add Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
* @return Post
*/
public function addCategoriesNew(\Site\Backend\BlogBundle\Entity\Category $category)
{
$this->categories[] = $category;
return $this;
}
/**
* Remove Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
*/
public function removeCategory(\Site\Backend\BlogBundle\Entity\Category $category)
{
$this->categories->removeElement($category);
}
/**
* Remove Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
*/
public function removeCategoriesNew(\Site\Backend\BlogBundle\Entity\Category $category)
{
}
/**
* Get Categories
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCategories()
{
return $this->categories;
}
/**
* Get Categories
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getCategoriesNew()
{
//return $this->categories;
}
/**
* Add tags
*
* @param \Site\Backend\BlogBundle\Entity\tag $tags
* @return Post
*/
public function addTag(\Site\Backend\BlogBundle\Entity\Tag $tags)
{
$this->tags[] = $tags;
return $this;
}
/**
* Add tags
*
* @param \Site\Backend\BlogBundle\Entity\tag $tags
* @return Post
*/
public function addTagsNew(\Site\Backend\BlogBundle\Entity\Tag $tags)
{
$this->tags[] = $tags;
return $this;
}
/**
* Remove tags
*
* @param \Site\Backend\BlogBundle\Entity\Tag $tags
*/
public function removeTag(\Site\Backend\BlogBundle\Entity\Tag $tags)
{
$this->tags->removeElement($tags);
}
/**
* Remove Tags
*
* @param \Site\Backend\BlogBundle\Entity\tag $tags
*/
public function removeTagsNew(\Site\Backend\BlogBundle\Entity\Tag $tags)
{
//$this->tags->removeElement($tags);
}
/**
* Get Tags
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getTags()
{
return $this->tags;
}
/**
* Get Tags
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getTagsNew()
{
//return $this->Tags;
}
/**
* Add Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
* @return Post
*/
public function addCategorie(\Site\Backend\BlogBundle\Entity\Category $categories)
{
$this->categories[] = $categories;
return $this;
}
/**
* Remove Categories
*
* @param \Site\Backend\BlogBundle\Entity\Category $categories
*/
public function removeCategorie(\Site\Backend\BlogBundle\Entity\Category $categories)
{
$this->categories->removeElement($categories);
}
/**
* @ORM\preUpdate
*/
public function setUpdateValue(){
$this->setDateUpdated(new \DateTime());
}
/**
* Set thumb
*
* @param \Site\Backend\AdminBundle\Entity\File $thumb
* @return Post
*/
public function setThumb(\Site\Backend\AdminBundle\Entity\File $thumb = null)
{
$this->thumb = $thumb;
return $this;
}
/**
* Get thumb
*
* @return \Site\Backend\AdminBundle\Entity\File
*/
public function getThumb()
{
return $this->thumb;
}
}
最佳答案
尝试改变:
站点\后端\管理 b 取消\实体\文件
到
站点\后端\管理 乙 取消\实体\文件
关于php - Class 似乎不是一个托管的 Doctrine 实体。你忘记映射了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924849/
我有一个 Mercurial 存储库。它在 rev A 上。我做了一些更改,提交(到 rev B)并推送。然而,后来,我意识到我不想做那些改变。我更新回修订版 A,并对修订版 C 进行了一些替代更改。
我是 Prolog 的新手,我遇到了一个问题,我的变量似乎被遗忘了 test(S) :- X = 'testing', (S = y, write(X) ); (S = n, write(X) ).
这个问题已经有答案了: How to handle a lost KeyStore password in Android? (43 个回答) 已关闭 6 年前。 我有一组应用程序,在将它们发布到商店
因为this question从未得到答复,我希望有人可以帮助我重置密码以连接到我的 neo4j 密码(位于 localhost:7474)。 Zachary wrote a post通过某人重新启动
使用 Netbeans 我曾经从 SVN 存储库中 checkout 一个项目,只是为了在 Netbeans 中测试 SVN 功能。 现在,每次我创建一个新项目或打开一个不受源代码控制的现有项目时,N
我觉得这个问题以前已经被问过,但每个发帖者的答案似乎都非常具体。 我正在寻找一种方法来识别给定元素并查找具有特定类的下一个元素。我不想处理parent()或children(),因为我正在解析一个表,
我是一名老师,正在制作一个基本的迷你 Steam 客户端,作为我的编程课的学习练习。我们正在使用 Python 和 tkinter。 该程序生成两组单选按钮。第一个是用户的“游戏库”,他们可以在其中选
我忘记了我的商业管理员帐户的 apache 密码,我要求发送一封电子邮件,但是我不知道哪个帐户与 ofbiz 服务器相关联,所以我无法查看电子邮件修改了密码,有没有人有什么提示? 谢谢 最佳答案 如果
这可能听起来很愚蠢,但我正在使用一个小型框架来生成包含 3 个类的 html: Tag extends LinkedList Attribute Attributes extends LinkedLi
我有点不知道该怎么办。我在这个站点和 mysql 站点之间找到了几个关于如何解决忘记的 root 密码的选项,但我想我现在已经把它弄坏了。 我无法将 line 命令与 mysql.com 推荐的已创建
如何从 SVN 版本控制中删除文件? 它以前是由某人无意中犯下的。 它是一个需要的本地文件,但因人而异,不需要在版本控制中。 如果我删除并提交,它将为每个人删除该文件。 我无法向 svn:ignore
我正在使用 JSHINT,并注意到当我有以下代码时它不会抛出错误: function barfoo() { a = 10; } 我想要每个全局定义的变量都有一个错误。我现在有以下 gulp 任
我不久前安装了 SQL Server 2005,但忘记了在安装过程中设置的管理员密码。现在如何连接到 SQL Server? 编辑:我想我只允许 Sql Server 身份验证。使用集成安全性登录也不
如果我在 REPL 中玩并且我为函数定义了几种不同的方法: julia> methods(next) # 3 methods for generic function "next": next(i::
如果我在 REPL 中玩并且我为函数定义了几种不同的方法: julia> methods(next) # 3 methods for generic function "next": next(i::
(不确定这是否是一个可以提问的地方,但我会尝试)。在 Fedora 16 中安装一些更新后,Eclipse 不再知道如何使用 Java 文件。它无法制作它们、编译它们或格式化语法。它只是 eclips
我安装了 MySQL,但忘记了 root 密码 (Mac OSX El Capitan)。 我正在使用 [Ubuntu][1] 的教程来重置我的密码,但我很早就遇到了问题 我输入sudo/usr/lo
我理解为什么 Python 在引用实例属性时需要显式 self 限定符。 但我经常忘记它,因为我在 C++ 中不需要它。 我以这种方式引入的错误有时很难发现;例如,假设我写 if x is not N
我正在使用客户端证书通过 HTTPS 对网站进行身份验证。第一次,chrome 询问我要使用哪个证书。但是,我不知道如何冲洗/忘记这个选择来选择另一个证书。 Chrome 会记住它,但我没有找到(无论
你如何在 Laravel 中删除 cookie。这不起作用: public function logout(Request $request) { $this->guard()->logout
我是一名优秀的程序员,十分优秀!