Terdapat dua contoh blog dan ulasan:
blog.comments
menyimpan jenis komencomment.blog_id
ialah kunci asing blog Pernyataan pertanyaan saya:
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(\Doctrine\ORM\Query::HYDRATE_OBJECT);
}
Mesej ralat:
Error: Call to a member function add() on a non-object in E:\xampp\htdocs\symfony\vendor\doctrine\orm\lib\Doctrine\ORM\PersistentCollection.php line 177
500 Internal Server Error - FatalErrorException
Komen kod utama, selebihnya dijana
/**
* Class Comment
* @ORM\Entity(repositoryClass="Blogger\BlogBundle\Entity\CommentRepository")
* @ORM\Table(name="comment")
* @ORM\HasLifecycleCallbacks()
*/
class Comment{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string",length=100)
*/
protected $user;
/**
* @ORM\Column(type="text")
*/
protected $comment;
/**
* @ORM\Column(type="boolean")
*/
protected $approved;
/**
* @ORM\ManyToOne(targetEntity="Blog",inversedBy="comments")
* @ORM\JoinColumn(name="blog_id",referencedColumnName="id")
*/
protected $blog;
/**
* @ORM\Column(type="datetime")
*/
protected $created;
/**
* @ORM\Column(type="datetime")
*/
protected $updated;
}
Kod utama blog:
class Blog{
/**
* @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;
/**
* @var
* @ORM\Column(type="string",length=20)
*/
protected $image;
/**
* @var
* @ORM\Column(type="text")
*/
protected $tags;
/**
* @ORM\OneToMany(targetEntity="Comment",mappedBy="blog")
*/
protected $comments = array();
/**
* @var
* @ORM\Column(type="datetime")
*/
protected $created;
/**
* @var
* @ORM\Column(type="datetime")
*/
protected $updated;
Anda perlu menghantar kod blog anda dan kategori komen, sekurang-kurangnya masukkan komen di blog.
KEMASKINI1:
Nilai lalai atribut ulasan pada kelas Blog anda ialah tatasusunan kosong, tetapi Doktrin sebenarnya menggunakan kaedah tambah() dalam mesej ralat anda disediakan oleh ArrayCollection.
Kod sumber:
https://github.com/doctrine/collections/blob/master/lib/Doctrine/Common/Collections/ArrayCollection.php
KEMASKINI2:
Doktrin ialah ORM, jadi ia mempunyai antara muka berorientasikan objek di dalam dan di luar.