2017-02-01 24 views
0

私はこのエラーが発生しているので、私も狂っています。 私はSymfony 3.2.2フレームワークを使用していますが、Autoloaderはファイルが見つかりましたが、クラスがそれに含まれていないと主張しています。クラス名または名前空間にはおそらくタイプミスがあります。私BookType.phpザッツSymfony、Autoloaderクラスはそれに含まれていません

スタックトレース

throw new \RuntimeException(sprintf('Trying to autoload a class with an invalid name "%s". Be careful that the namespace separator is "\" in PHP, not "/".', $class)); 
      } 
      throw new \RuntimeException(sprintf('The autoloader expected class "%s" to be defined in file "%s". The file was found but the class was not in it, the class name or namespace probably has a typo.', $class, $file)); 
     } 
     if (self::$caseCheck) { 
      $real = explode('\\', $class.strrchr($file, '.')); 

<?php 

namespace Bookkeeeper\ManagerBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class BookType extends AbstractType{ 

    public function buildForm(FormBuilderInterface $builder, array $options){ 
     $builder->add('title')->add('description')->add('pages'); 

    } 
    public function setDefaultOptions(OptionsResolverInterface $resolver){ 
     $resolver->setDefault(array('data_class'=>'Bookkeeeper\ManagerBundle\Entity\Book')); 

    } 
    public function getName(){ 
     return 'bookkeeeper_managerbundle_book'; 
    } 



} 

**それは私のBookController.phpファイル です**

<?php 

namespace Bookkeeper\ManagerBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use Bookkeeper\ManagerBundle\Entity\Book; 
use Bookkeeper\ManagerBundle\Form\BookType; 

class BookController extends Controller 
{ 

    public function indexAction(){ 
     return $this->render('BookkeeperManagerBundle:Book:index.html.twig'); 
    } 
    public function showAction($id){ 
     return $this->render('BookkeeperManagerBundle:Book:show.html.twig');  
    } 
    public function newAction(){ 
     $book = new Book(); 

     $form = $this->createForm(new BookType(), $book, array (
      'action' =>$this->generateUrl('book_create'), 
      'method'=> 'POST' 
     )); 
     $form->add('submit' , 'submit' , array('label' => 'Create Book')); 

     return $this->render('BookkeeperManagerBundle:Book:new.html.twig', array(
      'form'=>$form->createView() 
     )); 

    } 
    public function createAction(Request $request){ 

    } 
    public function editAction($id){ 
     return $this->render('BookkeeperManagerBundle:Book:edit.html.twig'); 
    } 
    public function updateAction(Request $request, $id){ 

    } 
    public function deleteAction(Request $request, $id){ 

    } 
} 
+0

どのクラスが期待されますか? –

+0

オートローダーは "/home/huseyinocal/bookkeeper/vendor/composer/../../src/Bookkeeper/ManagerBundle/Form/BookType.php"ファイルで定義される "Bookkeeper \ ManagerBundle \ Form \ BookType"クラスを想定しています。ファイルが見つかりましたが、クラスがそれに含まれていなかった、クラス名または名前空間はおそらくタイプミスを持っています。 –

答えて

0

あなたは、名前空間Bookkeeeper\ManagerBundle\Formを書きました。名前空間の代わりにBookkeeper\ManagerBundle\Form; (あなたが書いた余分な電子メールに注意してください)

+0

私のファイルはBookkeeper.Controller.phpではなくBookController.phpと呼ばれています。少し前に間違いを書き、これを編集しました。 –

+0

@u_mulderへのあなたの回答コメントで私の回答を編集しました – OlivierC

+0

これは大変ありがとうございます。私は疑いもなく複雑でした。 –

関連する問題