FK关系问题.学说


Issues with FK relations. Doctrine

Doctrine 1.2.4, PHP 5.3.3
表配置文件、流、事件

FK:事件 -> 配置文件多对一
FK:事件 -> 多对一流式传输

$this->hasMany('modelEvent as Events', array(
            'local' => 'id',
            'foreign' => 'stream_id'
));

轮廓

$this->hasMany('modelEvent as Events', array(
            'local' => 'id',
            'foreign' => 'profile_id'
));

事件

 $this->hasOne('modelProfile', array(
                 'local' => 'profile_id',
                 'foreign' => 'id'
 ));
 $this->hasOne('modelStream', array(
                'local' => 'stream_id',
                'foreign' => 'id'
 ));

关系不起作用:(

<?php
    $event = new modelEvent();
    $event -> merge ($data_event);
    $event -> modelProfile -> merge($data_profile);
    $event -> modelStream -> merge($data_stream);
    $event -> save();
?>

您需要使用 setRelation() 方法将关系数据正确添加到模型中。

例如:

$profile = new modelProfile();
$profile->fromArray($arrayOfData); //you can optionally populate the new model with an array of values.  Values with keys that don't exist in the model will be ignored.
$event = new modelEvent();
$event->setRelation('modelProfile', $profile);
$event->save();