【发布时间】:2017-04-15 11:07:43
【问题描述】:
在尝试为我的实体课程获取默认存储库类时,我不断收到以下错误:
尝试从命名空间“DrumLessonBookingApp\DrumLessonBookingBundle\Repository”加载类“LessonRepository”。 您是否忘记了另一个命名空间的“使用”语句?
我使用与 User 实体完全相同的方法,效果非常好。
我的控制器的代码是:
namespace DrumLessonBookingApp\DrumLessonBookingBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use DrumLessonBookingApp\DrumLessonBookingBundle\Entity\User;
use DrumLessonBookingApp\DrumLessonBookingBundle\Entity\Lesson;
use DrumLessonBookingApp\DrumLessonBookingBundle\Repository;
class LoginController extends Controller
{
public function displayAction()
{
return $this->render('DrumLessonBookingAppDrumLessonBookingBundle:Default:login.html.twig');
}
public function processloginAction(Request $request)
{
$doctrine = $this->getDoctrine()->getManager();
$email = $request->get('email');
$pwd = $request->get('pwd');
$user = $doctrine->getRepository('DrumLessonBookingAppDrumLessonBookingBundle:User')->findOneBy(array('email' => $email,'password' => $pwd));
if($user->getAdministrator() == 1)
{
$session = $this->get('session');
$session->set('loggedin', true);
$lessons = $doctrine->getRepository('DrumLessonBookingAppDrumLessonBookingBundle:Lesson')->findAll();
return $this->render('DrumLessonBookingAppDrumLessonBookingBundle:Default:dashboard.html.twig', array("lessons" => $lessons));
}
else {
return new Response('doctrine not working');
}
}
}
我也很难使用教义生成自定义 Respository 类,因此尝试自己为 User 实体创建一个,但 symfny 无法识别或识别自定义方法。见下文:
namespace DrumLessonBookingApp\DrumLessonBookingBundle\Repository;
use Doctrine\ORM\EntityRepository;
use DrumLessonBookingApp\DrumLessonBookingBundle\Entity\User;
class UserRepository extends EntityRepository
{
public function loginUser($email, $password)
{
$entityM = $this->getEntityManager();
$dql = $entityM->createQuery(
'SELECT u FROM DrumLessonBookingAppDrumLessonBookingBundle:User u
WHERE u.email = :email
AND WHERE u.password = :pwd');
$dql->setParameter('email', $email);
$dql->setParameter('pwd', $password);
$user = $query->getResult();
return $user;
}
}
我搜索了类似的问题,但找不到解决方案,请有人帮忙!
我的课程实体
namespace DrumLessonBookingApp\DrumLessonBookingBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="lessons")
* @ORM\Entity(repositoryClass="DrumLessonBookingApp\DrumLessonBookingBundle\Repository\LessonRepository")
* */
class Lesson {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* */
private $id;
/**
* @ORM\Column(type="date")
* */
private $date;
/**
* @ORM\Column(type="time")
* */
private $time;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="lessons")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* */
private $user;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set date
*
* @param \DateTime $date
*
* @return Lesson
*/
public function setDate($date)
{
$this->date = $date;
return $this;
}
/**
* Get date
*
* @return \DateTime
*/
public function getDate()
{
return $this->date;
}
/**
* Set time
*
* @param \DateTime $time
*
* @return Lesson
*/
public function setTime($time)
{
$this->time = $time;
return $this;
}
/**
* Get time
*
* @return \DateTime
*/
public function getTime()
{
return $this->time;
}
/**
* Set User
*
* @param object
* @return Lesson
* */
public function setUser(User $user)
{
$this->user = $user;
return $this;
}
/**
* Set User
*
*
* @return User
* */
public function getUser($user)
{
return $this->user;
}
}
我的自定义课程存储库中没有任何内容,但它肯定仍应从它扩展的 entityRepository 中找到诸如 findAll() 等方法
【问题讨论】:
-
能否请您展示实体:课程?
-
和你的
LessonRepository.. -
我已编辑问题以包含课程实体。感谢您抽出宝贵时间提供帮助
标签: php symfony frameworks doctrine