NULL对象的刷新属性


Flush property of a NULL object

我是stackoverflow和symfony开发的新手。

问题总结:

我通过请求$ Request从控制器中的Ajax获取值。当我对对象($donate)执行var_dump时,它会返回所有数据。但是当我想冲洗时,它告诉我,我的一个属性是NULL(投影)?

有人能帮我吗?非常感谢,很抱歉我的英语不好。

class AjaxController extends Controller
    {
        public function addDonationAction(Request $request)
        {
            $projectID = (int)$request->request->get('projectID');

            $donate = new Donate();
            $donate->setAmount($request->request->get('donationAmount'));
            $donate->setProjectID($projectID);
            $donate->setUserID(1); // Faudra récupérer tout ça du user connecté !
            // var_dump($donate); die();
            $em = $this->getDoctrine()->getManager();
            $em->persist($donate);
            $em->flush();
            // Faire tous les contrôles
            // Envoie en DB si tout est ok
            // Mise à jour : projectT
            // Insert : donateT
            return new JsonResponse($donate);
        }
    }

法国人

您好,

Je suis nouveau sur stackoverflow et dsamuant en dsamuement symfony2.

Un petit r sum de mon souci:Je rs - 2013.2013.10 - 2013.10控制器套件 une requête Ajax。我不相信我的价值,我不相信我的价值。与此相反的是,在数据库中,将会有超过一个值的数据被输入到数据库中(投影)。控制器:

class AjaxController extends Controller
{
    public function addDonationAction(Request $request)
    {
        $projectID = (int)$request->request->get('projectID');

        $donate = new Donate();
        $donate->setAmount($request->request->get('donationAmount'));
        $donate->setProjectID(1);
        $donate->setUserID(1); // Faudra récupérer tout ça du user connecté !
        // var_dump($donate); die();
        $em = $this->getDoctrine()->getManager();
        $em->persist($donate);
        $em->flush();
        // Faire tous les contrôles
        // Envoie en DB si tout est ok
        // Mise à jour : projectT
        // Insert : donateT
        return new JsonResponse($donate);
    }
}

如果你是一个人,你就会发现你是一个人,你会发现你是一个人。

PS: je travaille en local:-(

)

谢谢你!!

首先要做的是仔细阅读Symfony Doctrine文档中的示例:http://symfony.com/doc/current/book/doctrine.html

您还没有完全掌握原则2是对象关系管理器这一事实。因此,使用projd和userId是不正确的。

你应该有三个对象:捐赠,项目,用户与适当的关系设置。然后,您将使用对Project和User的引用来构建您的Donate对象。

$projectID = (int)$request->request->get('projectID');  // Be sure to check that you have a id
$userID    = $this->getUser()->getId(); // Or wherever your user object comes from
$projectReference = $em->getReference('MyBundle:Project',$projectID);
$userReference = $em->getReference('MyBundle:User',$userID);
$donate->setProject($projectReference);
$donate->setUser($userReference);

请注意,如果user始终是当前登录的用户,则不需要进行引用。