/** * @param $insName * @param $vals * @param string $kvTablePrefix * @param string $tKTablePrefix * * @return array */ function newIns($insName, $vals, $withKvs = true, $kvTablePrefix = 'Kv', $tKTablePrefix = 'TK') { $ins = M($insName); $ins->fill($vals); $r = $ins->save(); $ins->touch(); if ($r) { if ($withKvs) { $kvIns = kvIns($insName); $tkIns = tkIns($insName); $primaryKey = $insName . '_id'; $dataToKv = []; $allTk = $tkIns->get(); // dd($allTk->toArray()); switch ($insName) { case 'user': foreach ($allTk as $tk) { $dataToKv[] = ['k' => $tk->type_name, 'v' => '', $primaryKey => $ins->{$primaryKey}, 'datatype' => $tk->datatype, 't_group_id' => $tk->group_id, 'status_id' => $tk->status_id]; } break; default: foreach ($allTk as $tk) { $dataToKv[] = ['k' => $tk->type_name, 'v' => '', $primaryKey => $ins->{$primaryKey}]; } break; } $rr = $kvIns->insert($dataToKv); if ($rr) { return ss($ins); } return ee('db_insert_failed'); dd($allTk); } } return $r ? ss($ins) : ee(1); }
function k_exists($ins_name, $k_name, $v) { $ins = kvIns($ins_name); $cond = [d('db.key_name') => $k_name, d('db.value_name') => $v]; return $ins->where($cond)->exists(); }