请在此详细描述你所遇到的问题
【产品名称】:多商户系统 (PHP)
【产品版本】:v3.4
【部署方式】:linux宝塔面板
【部署环境】:线上环境
【php版本】:7.4
【Mysql版本】:5.7
【使用终端】:后台
app/common/repositories/user/UserRepository.php
user[/www/wwwroot/test.liuzhuayu.taokashop.com/app/common/repositories/user/UserRepository.php:597]
修复逻辑
public function changeLabelForm($id)
{
// 检查$id$是否为数组
$isArray = is_array($id);
$labelIds = [];
// 如果$id$不是数组,获取单个用户对象
if (!$isArray) {
$user = $this->dao->get($id);
$labelIds = $user ? $user->label_id : '';
}
// 通过依赖注入获取用户标签仓库,用于获取所有标签选项
/** @var UserLabelRepository $make */
$userLabelRepository = app()->make(UserLabelRepository::class);
$data = $userLabelRepository->allOptions();
// 根据$id$是否为数组,构建不同的表单提交URL,创建表单实例
return Elm::createForm(Route::buildUrl($isArray ? 'systemUserBatchChangeLabel' : 'systemUserChangeLabel', $isArray ? [] : compact('id'))->build(), [
// 隐藏字段,用于提交用户ID
Elm::hidden('ids', $isArray ? $id : [$id]),
// 多选下拉列表,用于选择用户标签,批量场景默认不预选
Elm::selectMultiple('label_id', '用户标签:', $userLabelRepository->labels($labelIds))->options(function () use ($data) {
$options = [];
// 构建下拉列表的选项数组
foreach ($data as $value => $label) {
$value = (string)$value;
$options[] = compact('value', 'label');
}
return $options;
})->placeholder('请选择用户标签')
])->setTitle('修改用户标签');
}

