2012-03-07 6 views
5

Tôi đang phát triển một ứng dụng bằng Symfony2. vấn đề này được đưa ra khi cố gắng để tạo ra thu khí một setters cho BalidatzeTaldea.php thực thể sử dụng sudo php app/console doctrine:generate:entities Anotatzailea/AnotatzaileaBundle Mã cho thực thể được như sau:Symfony2 tạo getters/setters

<?php 

namespace Anotatzailea\AnotatzaileaBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Doctrine\Common\Collections\ArrayCollection; 

/** 
* 
*@ORM\Table(name="BalidatzeTaldea") 
*@ORM\Entity 
*/ 
class BalidatzeTaldea 
{ 
    /** 
    * @var integer $BalTalId 
    * 
    * @ORM\Column(name="BalTalId", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $BalTalId; 

    /** 
    * @ORM\OneToMany(targetEntity="Erabiltzailea", mappedBy="BalidatzeTaldea") 
    */ 
    protected $Erabiltzaileak; 

    /** 
    * @var integer $ErabGaitasuna 
    * 
    * @ORM\Column(name="ErabGaitasuna", type="integer") 
    */ 
    private $ErabGaitasuna; 

    public function __construct() 
    { 
     $this->Erabiltzaileak = new ArrayCollection(); 
    } 

} 

Getters/setters cho các đơn vị khác trong thư mục Entity được tạo ra một cách chính xác. Tôi có thể làm gì? Cảm ơn.

+3

Bạn thực sự không cần sử dụng sudo cho việc này. Hãy nghĩ rằng quyền truy cập thư mục của bạn có thể bị rối tung lên. Xóa thư mục bộ nhớ cache và thử lại với tư cách người dùng thông thường. Nếu thất bại, chỉ cần thêm getters/setters. – Cerad

+0

Chỉ cần thử điều đó và không hoạt động. Cảm ơn. Bạn có ý tưởng nào khác không? Tôi nghĩ rằng lỗi phải có trong các chú thích ở đâu đó nhưng không thể xác định được nơi đâu. – Haritz

+0

Thử chạy 'php app/console doctrine: mapping: info' để xem có lỗi nào trong chú thích của bạn không. –

Trả lời

4

Xóa thư mục bộ nhớ cache -> "ứng dụng/cache" và thử lại

+0

Làm sạch bộ nhớ cache với sudo -u www-data php app/console cache: rõ ràng có thể giải quyết rất nhiều vấn đề trong symfony. –

10

Tôi biết điều này là cũ, nhưng tôi chỉ cần chạy vào vấn đề này bản thân mình ...

tôi đã

/* 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

Và thế hệ setter/getter không hoạt động. Đã thay đổi nó thành

/** 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

Và nó đã hoạt động! Thêm * vào dòng đầu tiên của nhận xét dường như thay đổi điều gì đó. Tôi cũng nhận thấy nó đã thay đổi cú pháp IDE của tôi.

Từ mã của bạn, có vẻ như bạn đã có hai * trong dòng nhận xét đầu tiên, nhưng nếu ai đó tình cờ gặp phải điều này, tôi hy vọng điều đó sẽ hữu ích.

+0

Điều này đã làm tôi bối rối nhiều lần ... mặc dù tôi "biết" nó. –

+0

Vâng, điều này thật bất ngờ. Cảm ơn bạn rất nhiều! –