$post = I('post.');
$id = $post['id'];unset($post['id']);
if($id){
$res = $Ticket->where(['id'=>$id])->save($post);
}else{
$post['addtime'] = NOW_TIME;
$post['sid'] = parent::$adminid;
$id = $res = $Ticket->add($post);
}
if(!empty($post['ticket_code']) && $post['ticket_type']==1 && $id){
$code = explode('<br />', nl2br(trim($post['ticket_code'])));
foreach ($code as $key => $value) {
$code[$key] = trim($value);
}
$code = array_unique($code); #去掉重复的值
$TicketCode = M('ticket_code');
$ticket = $TicketCode->where(['tid'=>$id])->select();
$newcode = []; #原来的特权码记录信息
if(!empty($ticket)){ #不为空
foreach ($code as $key => $value) {
foreach ($ticket as $k => $v) {
if($value == $v['code']){
$newcode[] = $v;
unset($code[$key]);
}
}
}
}
$delRes = $TicketCode->where(['tid'=>$id])->delete(); #删除该特权优惠券下的原来的特权码
$incode = ['sid'=>parent::$adminid,'tid'=>$id,'addtime'=>NOW_TIME];
foreach ($code as $key => $value) {
unset($code[$key]);
$code[$key] = $incode;
$code[$key]['code'] = $value;
}
$newarr = array_merge($code,$newcode);
foreach ($newarr as $key => $value) {
$TicketCode->add($value);
}
unset($post['ticket_code']); #清空
}
$this->msg(1,'特权优惠券编辑成功');
编辑添加一条数据之前数据库情景:
编辑添加一条数据之后数据库情景:
如此可见,tp框架中的add方法中是可以传入主键id的值的,并且其返回值仍是该主键id。
当然如果不传入主键id值,则会生产一条新的记录产生一个新的主键id值,并返回该主键id值