我是Symfony的新手,请不要骂我这个问题.
我在Symfony 1.4书中读到,有一个功能是通过doctrine:generate-admin或generate:app后端向应用程序添加后端,实现CRUD操作.
现在我想知道,有没有类似Symfony2.0的东西?
基本上我有一个用户管理和后台的数据库,我很乐意为我的管理员用户提供,但是我必须自己编写代码(即保护are/admin,创建模板,类,方法等等)通过使用某种已有的后端功能,可以更轻松地完成这项任务吗?
谢谢!
编辑:还读到有一个名为"Apostophe"的插件 - 但是SF2中没有包含任何内容,或者是否已经有后端解决方案附带的预配置SF2版本?
我对此感到头疼,我找不到解决办法.
我有2个实体:Movie.php和Category.php
我希望一部电影有多个类别,反之亦然.这就是我选择ManyToMany关系的原因.
现在我想知道......数据库网站上发生了什么?是否存在将movie_ids映射到category_ids的"中间"表?但事实并非如此.实际上我的第一次尝试是创建一个MovieCategory实体 - 我使用OneToMany将一部电影映射到多个类别,并且在MovieCategory实体中我创建了OneToOne连接以从我的Category实体获取类别名称.但我想这不是它应该如何运作,我是对的吗?
现在这是我的代码,我认为它应该如何工作,我真的很感激我能得到的任何帮助:
Movie.php
<?php
/**
* @ORM\Table(name="movies")
* @ORM\HasLifecycleCallbacks()
*/
class Movie
{
public function __construct()
{
$this->categories = new ArrayCollection();
}
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @ORM\Column(type="string") */
protected $moviename;
/**
* @ORM\ManyToMany(targetEntity="Category", mappedBy="movie")
*/
protected $categories;
}
Run Code Online (Sandbox Code Playgroud)
Category.php
<?php
/**
* @ORM\Table(name="categories")
* @ORM\HasLifecycleCallbacks()
*/
class Category
{
public function __construct()
{
$this->movies = new ArrayCollection();
}
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id; …Run Code Online (Sandbox Code Playgroud) 我一直收到这个错误:
/* ... */
$em = $this->getDoctrine()->getEntityManager();
$movie = $em->getRepository('MyMyBundle:Movie')->findMovieByName('moviename'); // Repository Class
\Doctrine\Common\Util\Debug::dump($movie); // dumps the object just fine! The Repository found it
echo $movie->getId(); // brings me the error nevertheless
Run Code Online (Sandbox Code Playgroud)
致命错误:在......在线的非对象上调用成员函数getId()...
我的实体中有getId()方法.其他方法即使它是对象也不起作用!
对象被转储如下:
..... array(1) { [0]=> object(stdClass)#759 (59) { ["__CLASS__"]=> string( .....
Run Code Online (Sandbox Code Playgroud)
任何提示?
在我的存储库类中,我使用:
public function getItemsByTag($tag)
{
$qb = $this->createQueryBuilder('c')
->select('c')
->where('c.tags LIKE %bipolar%')
->addOrderBy('c.id');
return $qb->getQuery()
->getResult();
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用..有谁知道这是如何工作的?或者我是否必须在没有QueryBuilder的情况下构建自定义查询?
谢谢!