我用 PHP 中的 Phalcon 编写了一个 vcard 类。vCard 模型是这样初始化的。
// Inside the BS_VCard class
public function initialize(){
$this->hasMany("id","BS_VCardElement","vCardId",array(
"alias" => "elements",
'foreignKey' => array(
'action' => Phalcon\Mvc\Model\Relation::ACTION_CASCADE
)
));
}
它的元素是这样初始化的
// Inside the BS_VCardElement class
public function initialize(){
$this->belongsTo("vCardId","BS_VCard","id",array("alias" => "vCard"));
...
}
如果用户读取 vCard 并添加另一个元素,它不会按预期工作。为了简化使用,我添加了一些像这样的门面方法
public function addDateOfBirth($date){
$element = new BS_VCardElement();
$element->setName("BDAY");
$element->addValue($date);
// This doesn't work
$this->elements[] = $element;
}
Docs/Storing 相关记录没有解释如何将这样的新数据附加到相关表中。
我也试过这个
$this->elements[] = array_merge($this->elements,array($element));
但是 save 方法似乎忽略了添加的元素。Save() 返回真。