2015-09-14 75 views
-2

在Symfony 2中遇到了一些麻煩。 我是Symfony 2中的新手。試圖從我的實體中獲取表中的某些行。Symfony 2語法錯誤

這裏是實體

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="articles") 
*/ 
class Article 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Id 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string" name="title") 
    */ 
    protected $title; 


    /** 
    * @ORM\Column(type="int" name="author_id") 
    */ 
    protected $authorId; 

    /** 
    * @ORM\Column(type="datetime" name="creation_date") 
    */ 
    protected $creationDate; 

    /** 
    * @ORM\Column(name="string") 
    */ 
    protected $content; 

    public function getId() 
    { 
     return $this->id; 
    } 

    public function getTitle() 
    { 
     return $this->title; 
    } 

    public function getAuthorId() 
    { 
     return $this->authorId; 
    } 

    public function getCreationDate() 
    { 
     return $this->creationDate; 
    } 

    public function getContent() 
    { 
     return $this->content; 
    } 
} 

控制器

$query = $em->createQuery(
     'SELECT a FROM AppBundle:Article a' 
     ); 

     $article = $query->getResult(); 

得到錯誤

[Syntax Error] Expected Doctrine\Common\Annotations\DocLexer::T_CLOSE_PARENTHESIS, got 'name' at position 26 in property AppBundle\Entity\Article::$title. 

我有26排什麼。 任何人都可以告訴我什麼是錯的?

謝謝!

+0

你有註解,它不是什麼。在@ Drick512建議您更正您的代碼後,您將在32行及更高版本的37行上顯示該消息。 – malcolm

回答

2

的錯誤消息是所有,但明確的...

我想你應該只是有一個逗號:

/** 
* @ORM\Column(type="string", name="title") 
*/ 
protected $title; 

BTW,name是沒有用在這裏。

+0

是的,謝謝; 0 –

0

這些屬性應該用逗號分隔。而且,只有在您使用的變量與列名稱不同時,才應該使用名稱。例如,您在數據庫中有some_var,但必須在代碼中使用$ someVar。