我对 Symfony 真的很陌生,所以如果这听起来很愚蠢,我提前道歉,如果有人纠正我的理解,我将非常感激。
我正在阅读有关数据库和 Doctrine的内容,阅读时我想为什么不创建一个虚拟博客应用程序来练习。
我正在开发的虚拟博客应用程序非常简单,只有三个表及其实体
- post(博客帖子所在的位置)它
Entity
是Entity/Post.php, - 评论(发表评论的地方)它
Entity
是Entity/Comments.php - 类别(帖子类别所在的位置)它
Entity
是Entity/Category.php。
我能够获取帖子/类别/评论来保存、显示、更新、删除所有工作正常的内容。
我现在正在处理的是当显示博客时,它的类别显示为一个数字(类别 ID),所以我试图将帖子表与类别表链接以显示类别名称而不是数字。
问题1,由于帖子也与评论表链接,我需要将同一个帖子表与类别表链接,我们可以在里面这样做Entity/Post.php
吗?
class Post
{
/**
* @ORM\OneToMany(targetEntity="Comments", mappedBy="post")
*/
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="post")
* @ORM\JoinColumn(name="category", referencedColumnName="id")
*/
protected $comment;
protected $categories;
如果不是,那么处理这些关系的正确方法是什么?
问题2,在阅读“获取相关对象”时,似乎我应该能够通过执行以下操作来获取类别名称
$posts = $this->getDoctrine()->getRepository('BlogBundle:Post')->findBy(array('category' => $id), array('id' => 'DESC'));
$category_name = $posts->getCategory();
但这给了我一个错误
Error: Call to a member function getCategory() on a non-object in
我可以确认实体getCategory()
中确实存在此方法Post
我将非常感谢这里的任何帮助。