代码:
namespace app\controller;
use think\db\Raw;
use think\facade\Db;
class ItemController
{
public function getCustomSortedItems()
{
// 定义自定义排序的顺序
$customOrder = [1, 3, 2];
// 将自定义排序顺序转换为字符串格式,适用于 FIELD() 函数
$customOrderStr = implode(',', $customOrder);
// 构建 FIELD() 函数的 SQL 表达式
$exp = new Raw("FIELD(status, $customOrderStr)");
// 使用 FIELD() 函数进行排序
$items = Db::table('items')->order($exp)->select();
return json($items); // 返回 JSON 格式的数据
}
}