Skip to content

Commit dfbb477

Browse files
committed
Fix controller name look up
1 parent 92884b4 commit dfbb477

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/AI/AIErrorCorrectionJob.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,18 @@ private function shouldAnalyzeError($error, $config)
216216

217217
if (!$controllerName) {
218218
$controllerName = 'Unknown';
219+
} else {
220+
// Verify controller name exists in database, try without 'Controller' suffix if needed
221+
$sql = "SELECT id FROM Controller WHERE name = ? AND application = ? AND deleted = 0 LIMIT 1";
222+
$checkController = DBI::prepared_query($sql, 'si', [$controllerName, $config['application']]);
223+
224+
if (empty($checkController) && substr($controllerName, -10) === 'Controller') {
225+
$controllerNameWithoutSuffix = substr($controllerName, 0, -10);
226+
$checkController = DBI::prepared_query($sql, 'si', [$controllerNameWithoutSuffix, $config['application']]);
227+
if (!empty($checkController)) {
228+
$controllerName = $controllerNameWithoutSuffix;
229+
}
230+
}
219231
}
220232

221233
$sql = "
@@ -387,12 +399,23 @@ private function identifyControllerAndFunction($error, $appId)
387399
";
388400

389401
$controllers = DBI::prepared_query($sql, 'si', [$controllerName, $appId]);
402+
403+
// If not found and name ends with 'Controller', try without suffix
404+
if (empty($controllers) && substr($controllerName, -10) === 'Controller') {
405+
$controllerNameWithoutSuffix = substr($controllerName, 0, -10);
406+
$controllers = DBI::prepared_query($sql, 'si', [$controllerNameWithoutSuffix, $appId]);
407+
if (!empty($controllers)) {
408+
$controllerName = $controllerNameWithoutSuffix; // Update for logging
409+
}
410+
}
411+
390412
if (empty($controllers)) {
391413
$this->log(" WARNING: Controller '{$controllerName}' not found in database");
392414
return $result;
393415
}
394416

395417
$result['controller_id'] = $controllers[0]['id'];
418+
$result['controller_name'] = $controllerName;
396419

397420
// Try to identify function from stack trace
398421
$trace = $error['trace'] ?? '';

0 commit comments

Comments
 (0)