Ajax @ParamConverter注释未找到Symfony 5对象
我用的是Symfony 5和Doctrine 2 当我使用下面描述的ajax调用时,会出现以下错误: @ParamConverter找不到App\Entity\Calendar对象 注释 但是,我的路线不使用参数 这是我的ajax功能:Ajax @ParamConverter注释未找到Symfony 5对象,ajax,symfony,annotations,Ajax,Symfony,Annotations,我用的是Symfony 5和Doctrine 2 当我使用下面描述的ajax调用时,会出现以下错误: @ParamConverter找不到App\Entity\Calendar对象 注释 但是,我的路线不使用参数 这是我的ajax功能: var url = Routing.generate('calendar.ajaxEditEvent'); $.ajax({ type: "POST", url: url, data: {
var url = Routing.generate('calendar.ajaxEditEvent');
$.ajax({
type: "POST",
url: url,
data: {
title: e.event.title,
description: e.event.extendedProps.description,
start: e.event.start,
end: e.event.end,
backgroundColor: e.event.backgroundColor,
borderColor: e.event.borderColor,
textColor: e.event.textColor,
allDay: e.event.allDay,
calendarId: e.event.id
}
,
dataType: 'json',
async: true,
sucess: function(reponse){
console.log('success');
console.log(response);
},
error : function(response) {
console.log('error');
console.log(response);
}
});
以及我的控制器中的调用函数:
/**
* @Route("/ajaxEditEvent", options={"expose"=true}, name="calendar.ajaxEditEvent", methods={"POST"})
*
* @param CalendarRepository $calendarRepository
* @param Request $request
* @param EntityManagerInterface $manager
*
* @return Response
*/
public function ajaxEditEvent(CalendarRepository $calendarRepository, Request $request, EntityManagerInterface $manager): Response
{
$title = $request->get('title');
$description = $request->query->get('description');
$start = $request->query->get('start');
$end = $request->query->get('end');
$backgroundColor = $request->query->get('backgroundColor');
$borderColor = $request->query->get('borderColor');
$textColor = $request->query->get('textColor');
$allDay = $request->query->get('allDay');
$calendarId = $request->query->get('calendarId');
if(
!empty($title) &&
!empty($description) &&
!empty($start) &&
!empty($backgroundColor) &&
!empty($borderColor) &&
!empty($textColor)
)
{
$code = 200;
$message = '';
if(empty($calendarId))
{
$calendar = new Calendar;
$code = 201;
}
else
{
$calendar = $calendarRepository->find($calendarId);
}
$calendar->setTitle($title);
$calendar->setDescription($description);
$calendar->setStart(new DateTime($start));
if($allDay)
{
$calendar->setEnd(new DateTime($start));
}
else
{
$calendar->setEnd(new DateTime($end));
}
$calendar->setAllDay($allDay);
$calendar->setBackgroundColor($backgroundColor);
$calendar->setBorderColor($borderColor);
$calendar->setTextColor($textColor);
$manager->persist($calendar);
$manager->flush();
$message = 'OK';
}
else
{
//return new Response('Incomplete data', 404);
$code = 404;
$message = 'Incomplete data';
}
return new Response($message, $code);
}
我不明白@ParamConverter在哪里使用。我将在这里冒险提出建议,您可能有两条与该uri匹配的路由,但您看到的是错误的一条,而另一条路由实际上有一个类型为
Calendar
的param,由于我们不知道的原因无法创建,因为我们看不到该方法;o) 非常感谢您的关注。我没有任何其他同名的路由…我不想吹毛求疵,但相同的路由名称几乎不相关,路径*/*uri很重要。您的错误消息应该包含引发错误的位置,请显示完整的错误消息(包括堆栈跟踪)。我没有任何其他具有相同url的路由