Codeigniter - 教义插入错误 - 多对一关系

Posted

技术标签:

【中文标题】Codeigniter - 教义插入错误 - 多对一关系【英文标题】:Codeigniter - Doctrine inserting error - Many To One relation 【发布时间】:2011-11-02 18:44:47 【问题描述】:

我在使用 Doctrine 2 和 Codeigniter 2 在数据库中插入新行时遇到问题。

我有两个表:语言、类别。

表格:类别:

id、languages_id、parent_id、标题

详细的表结构-http://pastebin.com/NhULaasc

表格:语言:

id、标题、slug、图标

详细的表结构-http://pastebin.com/Y6WpzdqF

实体:

Categories.php - http://pastebin.com/HbpKZGBL

Languages.php - http://pastebin.com/vDEd60NP

modelsLanguagesProxy.php - http://pastebin.com/j6zkeR3J

插入过程:

$data = $this->input->post(); 
if( is_array($data) && count($data) ) 
 
    unset($data['submit']); 
    $add = new models\Categories(); 
    $add->setLanguage($data['language_id']); 
    $add->setParentId($data['parent']); 
    $add->setTitle($data['title']); 
    $this->em->persist($add); 
    $this->em->flush(); 
    if( $add->getId() ) 
     
          $this->session->set_flashdata('message','Kategorija je dodana!'); 
          redirect('admin/kategorije'); 
    else 
          $this->session->set_flashdata('message','Kategorija ni dodana!'); 
          redirect('admin/kategorije'); 
     
 

错误:

Fatal error: Uncaught exception 'InvalidArgumentException' with 
message 'A new entity was found through the relationship 'models 
\Categories#languages' that was not configured to cascade persist 
operations for entity: @. Explicitly persist the new entity or 
configure cascading persist operations on the relationship.... 

我做错了什么?

【问题讨论】:

【参考方案1】:

我已经解决了这个问题。

我的完整解决方案:https://gist.github.com/1338884

【讨论】:

以上是关于Codeigniter - 教义插入错误 - 多对一关系的主要内容,如果未能解决你的问题,请参考以下文章

教义 - 如何保持多对一同步?

教义多对多关系问题

教义加入多对多没有关联

教义2多对多带翻译

教义中的多对多关系

教义 - 以表为目标的多对多