public function set()
{
$r = false;
if (!empty($this->_fields)) {
$condition = array();
foreach ($this->_fields as $k => $v) {
if (!is_object($v)) {
$condition[$k] = $v;
}
}
if (count($condition) > 1) {
//当只有修改2个以上字段时才更新
$r = parent::insert($this->table_name, $condition, false, false, $condition);
}
//更新外键信息
foreach ($this->foreign_keys as $k => $v) {
//判断外键有没有值,如果没有值,必须重新获取
//TODO
$tmp = explode(".", $v);
if (!empty($tmp[0]) && !empty($tmp[1])) {
$tbl_name = trim($tmp[0]);
$filed_name = trim($tmp[1]);
//有外键设置
if (isset($this->_fields->{$tbl_name}) && is_object($this->_fields->{$tbl_name})) {
//判断关联主键有没有条件
if (!isset($this->_fields->{$k})) {
$this->get(false);
}
//如果能获取到才修改
if (isset($this->_fields->{$k})) {
$items = $this->_fields->{$tbl_name};
//把外键条件加入进去
$items->{$filed_name} = $this->_fields->{$k};
$r = parent::insert($tbl_name, $items, false, false, $items);
}
}
}
}
}
return $r;
}