我正在构建一个CRM系统,而我面临着无法解决的奇怪问题。当我尝试创建一个新的自定义循环实体时,我想为其分配一个casestate实体,因此这就是我在customercasecontroller.php的创建中所做的工作:
$caseStateId = $request->request->get('caseState_id');
$caseState = $this->getDoctrine()->getManager()->getRepository('HSWAshaBundle:CaseState')->findOneById($caseStateId);
$entity = new CustomerCase();
$entity->setCaseState($caseState);
...... etc.....
一切正常,直到 setCasestate 方法。运行setCasestate后,我会收到以下错误:
Catchable Fatal Error: Argument 1 passed to HSWAshaBundleEntityCustomerCase::setCaseState() must be an instance of HSWAshaBundleEntityCaseState, null given, called in /home/webuser/Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Util/PropertyPath.php on line 538 and defined in /home/webuser/Symfony/src/HSW/AshaBundle/Entity/CustomerCase.php line 843
奇怪的部分是$ casestate确实是一个casestate对象(例如$ casestate-> getName()有效,并为所选的casestate提供了正确的名称)。出于某种思维的原因,当我使用setCasestate方法时,它只是将null 变成null 。如果我执行$ entity-> setCasestate($ customStateObject-> getID()),我会收到相同的错误消息,但是这次null更改为Integer。
自定义前与Casestate具有许多关系。
如果我使用formbuilder的add()方法并跳过所有这些手动工作,则可以正常工作,但是由于我使用了一个非常特定的自动填充jQuery下拉列表来从嵌套的树结构中选择casestate,所以我不得不手动添加下拉列表,并使用$请求 -> request-> get()。
我已经与这部分斗争了将近三天,非常感谢我能为此获得的所有帮助!
最后我把它上班了!原因是$请求缺少某些参数,因为树枝模板缺少form_rest(form)。添加之后,一切都开始起作用。谢谢!