duanbo6871 2010-12-18 22:05
浏览 21
已采纳

Magento:使用数据库约束在订单模型和自定义模块模型之间添加关系

I've created a module that has its own table faces. Also, the module setup adds a face_id attribute sales/order to connect them:

$installer = $this;
$installer->startSetup();

$installer->run("
    CREATE TABLE `{$this->getTable('faces')}` (
      `face_id` int(11) NOT NULL auto_increment,
      `title` varchar(255) NOT NULL,
      PRIMARY KEY (`face_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    ");

if (Mage::helper('faces')->isSalesFlat()) { // 1.4
    // TBD
} else { // 1.3
    $eav = new Mage_Eav_Model_Entity_Setup('sales_setup');
    $eav->addAttribute('order', 'face_id', array('type' => 'int'));
}

$installer->endSetup();

This is working great in my 1.3.2.4 install. But there are aspects of the relationship between order and face that I'd like to have. Namely, I'd like to be able to do things like this:

$face = $order->getFace(); // This method doesn't exist right now
$faceTitle = $face->getTitle();

Also, I'd like to add constraints. I would add them directly to the CREATE TABLE SQL, but I'm wondering if they are automatically added if I use some sort of built in method for creating this relationship.

  • 写回答

1条回答 默认 最新

  • douju4278 2010-12-19 15:48
    关注

    No, they are not added automatically. You could choose to store this information on the order table (by modifying it directly to add that column during setup) or you could create a table to join the two (order_face basically). The advantage of the former is that it would allow you to pull the data into the order and at least get $order->getFaceId() automatically. With a quick change to the model you could load that face automatically.

    Hope that helps!

    Thanks, Joe

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败