尝试在Symfony2中注册时出错

时间:2015-04-28 01:52:58

标签: php symfony

我是symfony2的新手,我想在我的profile_tbl中注册一些用户。 这是我在控制器中的代码。

 <?php

    namespace Ai\QABlogBundle\Controller;

    use Ai\QABlogBundle\Entity\Profile_tbl;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;



    class QABlogController extends Controller
    {

        /**
        *@Route("/" , name= "home")
        */
        public function homeAction()
        {
            return $this->render('AiQABlogBundle:QABlog:primaries/index.html.twig');

        }

        /**
        *@Route("/register/" ,name= "register")
        */

        public function registerAction(Request $request)
        {
            $profile = new Profile_tbl();

            $form  = $this -> createFormBuilder($profile)
                    -> add ('fname' , 'text')
                    -> add ('lname' , 'text')
                    -> add ('gender' , 'text')
                    -> add ('email' , 'text')
                    -> add ('register' , 'submit')
                    ->getForm();

            $form->handleRequest($request);
            if ($form->isValid()) {

                $em = $this->getDoctrine()->getManager();
                $em->persist($profile);
                $em->flush();
                return new Response('News added successfuly');
            }

             $build['form'] = $form->createView();
             return $this->render('AiQABlogBundle:QABlog:primaries/registration.html.twig', $build);
        }


    }

当我尝试在浏览器中运行它时会出错 “尝试从命名空间”Ai \ QABlogBu​​ndle \ Entity“加载类”Profile_tbl“。 您是否忘记了另一个命名空间的“use”语句?“

我不知道有什么问题。你能帮助我吗?

我的Profile_tbl实体

<?php

namespace Ai\QABlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

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

    /**
     * @var string
     *
     * @ORM\Column(name="fname", type="string", length=255)
     */
    private $fname;

    /**
     * @var string
     *
     * @ORM\Column(name="lname", type="string", length=255)
     */
    private $lname;

    /**
     * @var string
     *
     * @ORM\Column(name="gender", type="string", length=255)
     */
    private $gender;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=255)
     */
    private $email;


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

    /**
     * Set fname
     *
     * @param string $fname
     * @return Profile_tbl
     */
    public function setFname($fname)
    {
        $this->fname = $fname;

        return $this;
    }

    /**
     * Get fname
     *
     * @return string 
     */
    public function getFname()
    {
        return $this->fname;
    }

    /**
     * Set lname
     *
     * @param string $lname
     * @return Profile_tbl
     */
    public function setLname($lname)
    {
        $this->lname = $lname;

        return $this;
    }

    /**
     * Get lname
     *
     * @return string 
     */
    public function getLname()
    {
        return $this->lname;
    }

    /**
     * Set gender
     *
     * @param string $gender
     * @return Profile_tbl
     */
    public function setGender($gender)
    {
        $this->gender = $gender;

        return $this;
    }

    /**
     * Get gender
     *
     * @return string 
     */
    public function getGender()
    {
        return $this->gender;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return Profile_tbl
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail()
    {
        return $this->email;
    }
}

我尝试重命名或制作另一个实体..

我尝试生成新实体的步骤。 创建数据库:

php app/console doctrine:database:create

生成实体:

php app/console doctrine:generate:entity

生成Getters和Setter:

php app / console doctrine:generate:entities AiQABlogBu​​ndle

之后我在浏览器中运行它。

并给我一个错误,

  

尝试从命名空间“Ai \ QABlogBu​​ndle \ Controller”加载类“Profile”。   您是否忘记了“使用”声明,例如“Twig_Profiler_Profile”或“Symfony \ Component \ HttpKernel \ Profiler \ Profile”?

1 个答案:

答案 0 :(得分:0)

这件事发生在我身上几次。当我复制粘贴旧的类文件来创建新类时,通常会发生这种情况。检查您的类名和包含您的类的文件的文件名;他们应该是一样的。在您的情况下,它们应分别为buttonProfile_tbl

更新

Profile_tbl .php根据PSR-0自动加载约定转换为Profile_tbl,默认情况下,Composer使用该约定来加载Profile/tbl.php目录中的类。您必须将类重命名为不使用下划线的内容,例如src/或仅ProfileTbl

Profile

Pazi致信,指出这一点。