Php 不能使用CRUDController
我正在使用sonata Mongodb AdminBundle作为我的后端,在我的情况下,我需要为我的用户模型创建一个新的操作(向他发送邮件),我严格按照文档进行操作 但我有一个奇怪的错误: 编译错误:无法将Sonata\AdminBundle\Controller\CRUDController用作控制器,因为该名称已在使用中 这是我的CRUDController代码:Php 不能使用CRUDController,php,mongodb,symfony,sonata-admin,Php,Mongodb,Symfony,Sonata Admin,我正在使用sonata Mongodb AdminBundle作为我的后端,在我的情况下,我需要为我的用户模型创建一个新的操作(向他发送邮件),我严格按照文档进行操作 但我有一个奇怪的错误: 编译错误:无法将Sonata\AdminBundle\Controller\CRUDController用作控制器,因为该名称已在使用中 这是我的CRUDController代码: use Symfony\Bundle\FrameworkBundle\Controller\Controller; use S
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Session\UserBundle\Document\User;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
class CrudController extends Controller
{
public function inscriptionAction()
{
$mail = 'towho@someone.com';
$pinCode = '1klm8';
$sender = 'Mymail@gmail.com';
$dm = $this->get('doctrine_mongodb')->getManager();
$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->createUser();
$user->setEmail($mail);
$user->setUsername($mail);
$user->setPlainPassword($pinCode);
$user->setEnabled(true);
$userManager->updateUser($user, true);
$message = \Swift_Message::newInstance()
->setSubject('Test de recrutement')
->setFrom($sender)
->setTo($mail)
->setCharset('utf-8')
->setContentType('text/html')
->setBody(
$this->renderView(
'ATSQuizzBundle:Default:SwiftLayout/createUser.html.twig',
array('user' => $user, 'pinCode' => $pinCode)
)
);
$this->get('mailer')->send($message);
$this->addFlash('sonata_flash_success', 'mail sent to the candidate');
return new RedirectResponse($this->admin->generateUrl('list'));
}
}
有人知道这个错误的来源吗 您已经导入了
控制器
类。因此,在第二种情况下,需要对其进行重命名。使用“下一步”覆盖您的“使用”块:
use Session\UserBundle\Document\User;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Sonata\AdminBundle\Controller\CRUDController as Controller;
如您所见,我删除了代码中未使用的第一个出现的Controller
类。但是如果您在此文件中有一些其他代码可以使用“old”Controller
,我建议您将最后一个Controller
重命名为BaseController
,并从BaseController
扩展您的类