脚本宝典收集整理的这篇文章主要介绍了php – 我如何解决语义错误:“类没有名称的关联..”,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
http://tutorial.symbLOG.co.uk/docs/customising-the-view-more-wITh-twig.htML
当我得到更新时:
// src/Blogger/BlogBundle/Repository/BlogRepositoy.PHP public function getLatestBlogs($limit = null) { $qb = $this->createQueryBuilder('b') ->select('b,c') ->leftJoin('b.COMments','c') ->addOrderBy('b.created','DESC'); if (false === is_null($limit)) $qb->setMaxResults($limit); return $qb->getQuery() ->getResult(); }
当我更新时:
{# src/Blogger/BlogBundle/Resources/views/Page/index.html.twig #} {# .. #} <footer class="Meta"> <p>Comments: <a href="{{ path('BloggerBlogBundle_blog_show',{ 'id': blog.id }) }}#comments">{{ blog.comments|length }}</a></p> <p>Posted by <span class="highlight">{{ blog.author }}</span> at {{ blog.created|date('h:iA') }}</p> <p>Tags: <span class="highlight">{{ blog.tags }}</span></p> </footer> {# .. #}
我然后刷新我的浏览器并得到错误:
[SEMantical Error] line 0,col 71 near 'c ORDER BY b.created': Error: Class Blogger\BlogBundle\Entity\Blog has no association named comments 500 Internal Server Error - QueryException <?PHP // src/Blogger/BlogBundle/Entity/Blog.PHP namespace Blogger\BlogBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; /** * @ORM\Entity(repositoryClass="Blogger\BlogBundle\Repository\BlogRepository") * @ORM\Table(name="blog") * @ORM\HasLifecycleCallbacks() */ class Blog { public function __toString() { return $this->getTitle(); } /** * @ORM\Id * @ORM\Column(tyPE="integer") * @ORM\GeneratedValue(strategy="AUTO") */ PRotected $id; /** * @ORM\Column(type="string") */ protected $title; /** * @ORM\Column(type="string",length=100) */ protected $author; /** * @ORM\Column(type="text") */ protected $blog; /** * @ORM\Column(type="string",length="20") */ protected $image; /** * @ORM\Column(type="text") */ protected $tags; protected $comments; /** * @ORM\Column(type="datetime") */ protected $created; /** * @ORM\Column(type="datetime") */ protected $updated; public function __construct() { $this->comments = new ArrayCollection(); $this->setCreated(new \DateTime()); $this->SETUPdated(new \DateTime()); } public function setUpdatedValue() { $this->setUpdated(new \DateTime()); } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set title * * @param string $title */ public function setTitle($title) { $this->title = $title; } /** * Get title * * @return string */ public function getTitle() { return $this->title; } /** * Set author * * @param string $author */ public function setAuthor($author) { $this->author = $author; } /** * Get author * * @return string */ public function getAuthor() { return $this->author; } /** * Set blog * * @param text $blog */ public function setBlog($blog) { $this->blog = $blog; } /** * Get blog * * @return text */ public function getBlog($length = null) { if (false === is_null($length) && $length > 0) return substr($this->blog,$length); else return $this->blog; } /** * Set image * * @param string $image */ public function setImage($image) { $this->image = $image; } /** * Get image * * @return string */ public function getImage() { return $this->image; } /** * Set tags * * @param text $tags */ public function setTags($tags) { $this->tags = $tags; } /** * Get tags * * @return text */ public function getTags() { return $this->tags; } /** * Set created * * @param datetime $created */ public function setCreated($created) { $this->created = $created; } /** * Get created * * @return datetime */ public function getCreated() { return $this->created; } /** * Set updated * * @param datetime $updated */ public function setUpdated($updated) { $this->updated = $updated; } /** * Get updated * * @return datetime */ public function getUpdated() { return $this->updated; } }
谢谢
很可能你没有为你的实体添加注释字段(或者没有正确地注释它).
类似的问题:Doctrine2: What is wrong with the association between these entities?
编辑:现在当你粘贴你的实体时,我可以看到注释字段没有注释. Doctrine的实体经理对此一无所知.您必须提供映射(在您的情况下通过注释).
编辑2:
在你的实体中你应该有(src / Blogger / BlogBundle / Entity / Blog.PHP):
/** * @ORM\OneToMany(targetEntity="Comment",mappedBy="blog") */ protected $comments;
但是你有:
protected $comments;
缺少映射.学说不知道如何使用你的领域.
以上是脚本宝典为你收集整理的php – 我如何解决语义错误:“类没有名称的关联..”全部内容,希望文章能够帮你解决php – 我如何解决语义错误:“类没有名称的关联..”所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。