args[0] ?? 'land'; $land = $this->validation->$landKey ?? null; if (!$land) { $this->addError('土地信息不存在,请先验证土地归属'); return false; } return true; // 不再验证土地状态 try { // 检查土地状态是否允许铲除作物 // 只有种植中、可收获、枯萎状态才能铲除 $allowedStatuses = [ LAND_STATUS::PLANTING->value, LAND_STATUS::HARVESTABLE->value, LAND_STATUS::WITHERED->value ]; if (!in_array($land->status, $allowedStatuses)) { $statusName = $this->getStatusName($land->status); $this->addError("土地当前状态为{$statusName},不允许铲除作物"); return false; } return true; } catch (\Exception $e) { $this->addError('验证铲除状态时发生错误: ' . $e->getMessage()); return false; } } /** * 获取状态名称 * * @param int $status 状态值 * @return string 状态名称 */ private function getStatusName(int $status): string { return match ($status) { LAND_STATUS::IDLE->value => '空闲', LAND_STATUS::PLANTING->value => '种植中', LAND_STATUS::HARVESTABLE->value => '可收获', LAND_STATUS::WITHERED->value => '枯萎', default => '未知状态' }; } }