Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 将数据持久化到数据库。坚持不工作_Database_Symfony - Fatal编程技术网

Database 将数据持久化到数据库。坚持不工作

Database 将数据持久化到数据库。坚持不工作,database,symfony,Database,Symfony,我编写了一个控制器操作,应该向数据库添加一个元素(会议),如下所示: public function newAction(Request $request){ $meeting = new Meeting(); $meetingUser = new MeetingUser(); $project = new Project(); $projectName = "SocialPro";//$request->get('projectName'); ec

我编写了一个控制器操作,应该向数据库添加一个元素(会议),如下所示:

public function newAction(Request $request){
    $meeting = new Meeting();
    $meetingUser = new MeetingUser();
    $project = new Project();
    $projectName = "SocialPro";//$request->get('projectName');
    echo($projectName);
    $users = $this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findProjectUser($projectName);
    //$form = $this->createForm('SocialPro\MeetingBundle\Form\MeetingType', $meeting);
    //$form->handleRequest($request);
    //if ($form->isSubmitted() && $form->isValid()) {
    $userconn = $this->container->get('security.token_storage')->getToken()->getUser();
    echo($userconn->getId());
    if ($request->isMethod('POST')) {
        echo("message form");
        $role = $this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findUserRole($userconn)[0]['role'];
        $date = $request->get('date');
        if ($role == "PROJECT_MASTER" || $role == "TEAM_MASTER") {
            for ($i = 0; $i < count($users); $i++) {
                $meetings = $this->getDoctrine()->getRepository('SocialProMeetingBundle:meetingUser')->findMeetingUser($users[$i]['id'], $date);
            }
            if ($meetings == null || count($meetings) == 0) {
                $project = $this->getDoctrine()->getRepository('SocialProProjectBundle:Project')->findBy(array("name" = >$projectName));
                $meeting->setDescription($request->get('description'));
                $meeting->setDate(new \DateTime($request->get('date')));
                $meeting->setTime($request->get('time'));
                $meeting->setProjectName($request->get('projectName'));
                $meeting->setProject($project[0]);


                $meetingUser->setMeetings($meeting);
                $meetingUser->setUsers($userconn);
                var_dump($meetingUser);
                $meeting->setMeetingUser(array($meetingUser));
                //$project->setMeetings($meeting->getId());
                $em = $this->getDoctrine()->getManager();

                $em->persist($meeting);
                $em->persist($meetingUser);
                $em->flush();
                // $meetingUser->setUsers($request->get(''));
                return $this->redirectToRoute('reunion_show', array('id' = > $meeting->getId()));
            }
            else {
                echo("Membre indisponible");
            }
        }
        else {
            echo("Must be MASTER to create meeting");
        }
    }
    return $this->render('SocialProMeetingBundle::ajoutMeeting.html.twig', array('users' = >$users));
    // $em = $this->getDoctrine()->getManager();
    //$em->persist($meeting);
    //$em->flush($meeting);

    // return $this->redirectToRoute('meeting_show', array('id' => $meeting->getId()));
    //}

    //return $this->render('SocialProMeetingBundle:ajouMeeting', array(
    //  'meeting' => $meeting,
    //'form' => $form->createView(),
    //));
}

我不知道如何修复它。

您必须在调用persist后立即调用flush,如下所示:

$em->persist( $meeting );
$em->flush();

$em->persist( $meetingUser );
$em->flush();

然后它将同时存在。

是404错误还是500错误?您查看了日志文件了吗?@el_wichtel这是我在控制台中遇到的错误:加载资源失败:net::ERR_CONNECTION_reset with console您指的是日志文件吗?因此,请发布完整的日志条目并检查数据库连接。通过关系“SocialPro\MeetingBundle\entity\Meeting\meetingUser”找到了一个新实体,该关系未配置为级联实体的持久化操作:SocialPro\MeetingBundle\entity\meetingUser。要解决此问题,请对此未知实体显式调用EntityManager#persist(),或在映射中配置cascade persist此关联,例如@manytone(..,cascade={“persist”})。如果您无法找到导致问题的实体,请执行“SocialPro\MeetingBundle\entity\MeetingUser\#uu toString()”以获取线索。我发现您的代码存在很多问题,很难提出简单的建议。你已经通过考试了吗?如果没有,我建议你先做。从本质上说,查看代码时,您可能需要首先创建一个
MeetingUser
对象并将其持久化,然后创建
Meeting
对象并添加
MeetingUser
对象并将其持久化。我不知道你是如何创建实体的,所以我不能提出好的建议。
$em->persist( $meeting );
$em->flush();

$em->persist( $meetingUser );
$em->flush();