2011-09-27 16 views
5

Tôi có đoạn code sau đây, mà lấy sên trang từ cơ sở dữ liệu đó là cần thiết để sau đó tạo ra một trang tiểu liên quan:ErrorException: Lỗi có thể bắt gặp: Đối tượng của lớp không thể chuyển đổi thành chuỗi - Gây ra bởi trình đơn thả xuống nhưng tại sao?

 $builder->add('subtocontentoptions', 'entity', array(
      'class' => 'ShoutAdminBundle:Content', 
      'property' => 'slug', 
      'query_builder' => function($repository) { 
       return $repository->createQueryBuilder('p') 
       ->where('p.mainpage = :main') 
       ->setParameter('main', '1') 
       ->orderBy('p.created', 'ASC'); 
      } 
     )); 

Mã này hoạt động, vì nó sẽ hiển thị một trình đơn thả tất cả các trang mẹ xuống Tôi có. Tuy nhiên, khi tôi đi để lưu các dữ liệu vào cơ sở dữ liệu, tôi đưa ra các lỗi sau:

ErrorException: Catchable Fatal Error: Object of class Shout\AdminBundle\Entity\Content could not be converted to string in C:\wamp\www\vendor\doctrine-dbal\lib\Doctrine\DBAL\Statement.php line 131

Tôi đã kiểm tra các nội dung của file thực thể nội dung, và đây là biến được tuyên bố:

/** 
* @var integer $subtocontentoptions 
* 
* @ORM\Column(name="SubToContentOptions", type="integer", nullable=false) 
*/ 
private $subtocontentoptions; 

Và thấp xuống các tập tin thực Nội dung:

/** 
* Set subtocontentoptions 
* 
* @param integer $subtocontentoptions 
*/ 
public function setSubtocontentoptions($subtocontentoptions) 
{ 
    $this->subtocontentoptions = $subtocontentoptions; 
} 

/** 
* Get subtocontentoptions 
* 
* @return integer 
*/ 
public function getSubtocontentoptions() 
{ 
    return $this->subtocontentoptions; 
} 

phần còn lại của các mã làm việc, một khi thả xuống này đã được đưa ra. Tôi không chắc tại sao trình đơn thả xuống lại gây ra lỗi này?

Cảm ơn

+0

giá trị của các tùy chọn trong menu thả xuống là gì? Là nó theo giá trị int trong bảng? – Tjorriemorrie

+0

Vâng, nó sử dụng trường Int (ID) của bảng. Tôi đang cố gắng thay đổi điều này để nó sử dụng một giá trị khác. – mickburkejnr

+0

thử thực hiện 'subtocontentoptions' được bảo vệ thay vì riêng tư – Reuven

Trả lời

10

Đã có cùng một vấn đề với một dự án SF2/doctrine2, thực hiện các phương pháp __toString giải quyết vấn đề này cho tôi:

public function __toString() 
{ 
    return strval($this->id); 
} 
+0

Bạn có biết nguyên nhân của lỗi này có thể là gì không? –

+0

nếu khóa ngoại là rỗng, thì điều này sẽ gây ra lỗi. không chắc chắn lý do tại sao. – Basit

Các vấn đề liên quan