/**
* 注意: 自增id, 开始默认和排序字段一致 [1: update `table` set sort = id], [2: insert时需同步sort=id]
* $id 当前移动的id
* $action 操作 up=上移 down=下移
* $table 操作的表名
* $sortField 表中排序字段
*/
function MoveUpDown($id, $action, $table, $sortField = 'sort')
{
if (empty($id) || empty($action) || empty($table)) {
response(-1, '缺少必填参数');
}
$info = M($table)->where(['id' => $id])->find();
switch ($action) {
case 'up':
$list = M($table)->where([$sortField => ['EGT', $info[$sortField]]])->order("$sortField asc")->limit(2)->select();
break;
case 'down':
$list = M($table)->where([$sortField => ['ELT', $info[$sortField]]])->order("$sortField desc")->limit(2)->select();
break;
default:
response(-1, '参数错误');
break;
}
if (count($list) != 2) {
response(-1, '操作错误, 无法移动');
}
$res = M($table)->where(['id' => $list[0]['id']])->save([$sortField => $list[1][$sortField]]);
$res2 = M($table)->where(['id' => $list[1]['id']])->save([$sortField => $list[0][$sortField]]);
if ($res !== false && $res2 !== false) {
response(0, 'success');
}
}
thinkphp3.2 实现上移/下移功能
于 2022-11-08 11:41:00 首次发布