2016-04-06 9 views
0

Sınıfları anında oluşturmak için bir değişken kullanarak sınıfları dinamik olarak anlamaya çalışıyorum.Sınıf adını depolayan bir değişken kullanarak sınıfların dinamik olarak eşleştirilmesi

use DefaultBundle\Form\CategoryType; 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $classname = 'CategoryType::class'; 

     //$form = $this->createForm(CategoryType::class); 

     $form = $this->createForm($classname); 

Ama bu hatayı alıyorum: Tahmin edeceğiniz gibi

Could not load type "CategoryType::class"

, ben yorumladı satırını kullanarak herhangi bir sorun yok.

cevap

2

Tırnak işaretlerini kaldırın. için aynı kodu kullanmak için,

$classname = CategoryType::class; 

Aksi takdirde Cevabınız için sınıf adı yerine

+0

sayesinde değişmez dize CategoryType::class geçiyor ama sınıf adının ilk bölümü değişken olması gerekir farklı sınıflar. Bunu denedim: $ classname = $ variable. ':: class'' ama işe yaramıyor – ziiweb

+0

Teklif koymayı durdur ;-) – Neal

+0

Şimdi şunu elde ettik: '$ classname =' DefaultBundle \ Form \ CategoryType ';' ve tamam çalışıyor – ziiweb