首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >教义关系在持续和繁荣之后消失。

教义关系在持续和繁荣之后消失。
EN

Stack Overflow用户
提问于 2012-02-05 22:42:25
回答 1查看 793关注 0票数 1

在记录笔记的实体和有用户进行注释的实体之间,我有很多到一个关系。也就是说,一个用户可以提出多个评论。

当第一次查看页面时,注释显示得很好,$note-> employee ->user根据与notes表的多到一个关系从employee表中获取用户名。当通过邮寄表单添加新的注释时:

代码语言:javascript
复制
$activity = new \S2\Entity\Crmnotes;
$activity->solicitorid = $solicitorid;
$activity->note = $activityDescription;
$activity->employeeid = 2;
$activity->type = $activityType;
$this->_em->persist($activity);
$this->_em->flush();

然后,页面将显示便笺实体中的数据,而不是来自其任何关系的数据,即$note->note->type display但$note->employee->user会导致尝试获取非对象错误的属性。

当下一次访问页面时,所有的数据都会像往常一样显示得很好。

编辑

另外,datetime对象$note->lastmodified也无法在插入记录后显示。在非对象上调用成员函数format()时会出现错误,当我尝试格式化日期时,例如$note->lastmodified> format (‘d/m/Y:i’);

编辑是的,这是理论2。根据要求:

代码语言:javascript
复制
namespace S2\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * Crmnotes
 *
 * @Table(name="crmnotes")
 * @Entity
 */
class Crmnotes extends \S2_Doctrine_Entity
{
/**
 *
 * @ORM\ManyToOne(targetEntity="S2\Entity\Tblsolicitor", inversedBy="crmnotes")
 * @JoinColumn(name="SolicitorID", referencedColumnName="SolicitorID")
 * 
 */
 private $solicitor;

/**
 *
 * @ORM\ManyToOne(cascade={"persist"}, targetEntity="S2\Entity\Tblemployees", inversedBy="crmnotes")
 * @JoinColumn(name="EmployeeID", referencedColumnName="EmployeeID")
 * 
 */
 private $employee;

/**
 * @var integer $notesid
 *
 * @Column(name="notesid", type="integer", nullable=false)
 * @Id
 * @GeneratedValue(strategy="IDENTITY")
 */
private $notesid;

/**
 * @var integer $type
 *
 * @Column(name="type", type="integer", nullable=false)
 */
private $type;

/**
 * @var integer $solicitorid
 *
 * @Column(name="SolicitorID", type="integer", nullable=false)
 */
private $solicitorid;

/**
 * @var text $note
 *
 * @Column(name="Note", type="text", nullable=false)
 */
private $note;

/**
 * @var integer $employeeid
 *
 * @Column(name="EmployeeID", type="integer", nullable=false)
 */
private $employeeid;

/**
 * @var datetime $lastmodified
 *
 * @Column(name="LastModified", type="datetime", nullable=false)
 */
private $lastmodified;

public function __get($name) 
{
    if (isset($this->$name)){
        return $this->$name;
    } else {
        return '';
    }
}

public function __set($name, $value) 
{
    $this->$name = $value;
}


}

编辑

在使用对象而不是手动插入外键时,仍然没有joy:

代码语言:javascript
复制
$activity = new \S2\Entity\Crmnotes;
$activity->note = $activityDescription;
$activity->type = $activityType;
$solicitor = $this->_em->getRepository('\S2\Entity\Tblsolicitor')->find($solicitorid);
$solicitor->crmnotes->add($activity);
$activity->solicitor = $solicitor;
$employee = $this->_em->getRepository('\S2\Entity\Tblemployees')->find(2);
$this->view->debug = $solicitor->crmnotes[0]->note;
$employee->crmnotes->add($activity);
$activity->employee = $employee;
$this->_em->persist($activity);
$this->_em->flush();
EN

Stack Overflow用户

发布于 2012-02-13 21:21:22

试图移除

代码语言:javascript
复制
/**
 * @var integer $employeeid
 *
 * @Column(name="EmployeeID", type="integer", nullable=false)
 */
private $employeeid;

正如较新的Doctrine在使用同一列的关系时抱怨的那样。

代码语言:javascript
复制
* @JoinColumn(name="EmployeeID", referencedColumnName="EmployeeID")

也许引用id而不是EmployeeID?

代码语言:javascript
复制
  if (isset($this->$name)){
        return $this->$name;
    } else {
        return '';
    }

不需要检查它,如果它为空,则Doctrine返回null

我没看到你给LastModified设置了什么地方?

代码语言:javascript
复制
$entity->lastmodified = new \DateTime();
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9153790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档