您好我正在尝试按标题选择
实体\ Pages.php
<?php
namespace Dproc\MainBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @IgnoreAnnotation("fn")
*
*/
/**
* @ORM\Entity
* @ORM\Table(name="pages")
*/
class Pages
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $Id;
/**
* @ORM\Column(type="text")
*/
protected $page_title;
/**
* @ORM\Column(type="text")
*/
protected $page_content;
/**
* @ORM\Column(type="text")
*/
protected $page_category;
/**
* Get Id
*
* @return integer
*/
public function getId()
{
return $this->Id;
}
/**
* Set page_title
*
* @param string $pageTitle
* @return Pages
*/
public function setPageTitle($pageTitle)
{
$this->page_title = $pageTitle;
return $this;
}
/**
* Get page_title
*
* @return string
*/
public function getPageTitle()
{
return $this->page_title;
}
/**
* Set page_content
*
* @param string $pageContent
* @return Pages
*/
public function setPageContent($pageContent)
{
$this->page_content = $pageContent;
return $this;
}
/**
* Get page_content
*
* @return string
*/
public function getPageContent()
{
return $this->page_content;
}
/**
* Set page_category
*
* @param string $pageCategory
* @return Pages
*/
public function setPageCategory($pageCategory)
{
$this->page_category = $pageCategory;
return $this;
}
/**
* Get page_category
*
* @return string
*/
public function getPageCategory()
{
return $this->page_category;
}
}
CourseController
<?php
namespace Dproc\MainBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Dproc\MainBundle\Entity\Pages;
use Symfony\Component\HttpFoundation\Response;
class CourseController extends Controller
{
public function IndexAction($slug)
{
$page = $this->getDoctrine()
->getRepository('DprocMainBundle:Pages')
->findByPageTitle($slug);
if (!$page) {
throw $this->createNotFoundException('No product found for slug '.$slug);
}
return $this->render('DprocMainBundle:Dproc:single.html.twig',array('page' => $page));
}
}
我试图通过page_title找到它,所以我尝试了findByPageTitle($ slug),但它显示了
Entity 'Dproc\MainBundle\Entity\Pages' has no field 'pageTitle'. You can therefore not call 'findByPageTitle' on the entities' repository
我做错了什么,我怎样才能逐页选择_title
答案 0 :(得分:6)
Symfony的编码标准规定您需要对变量使用camelcase语法。
我的猜测是您使用了下划线语法,因为您希望数据库中的列具有下划线。
您可以使用属性name
指定Column
注释来指定列名。
/**
* @ORM\Column(name="page_title", type="text")
*/
protected $pageTitle;
/**
* @ORM\Column(name="page_content", type="text")
*/
protected $pageContent;
/**
* @ORM\Column(name="page_category", type="text")
*/
protected $pageCategory;
我强烈建议您阅读coding standards,以便将来不会遇到这类问题。
答案 1 :(得分:1)
在您的实体中使用此代码段:
/**
* @ORM\Column(name="page_title", type="text")
*/
protected $pageTitle;
不要忘记修改字段的get和set。
尝试并坚持使用Symfony2标准:http://symfony.com/doc/current/contributing/code/standards.html