Support the ongoing development of Laravel.io →
Configuration Requests Architecture

for some reason I'm getting : "Class App\Http\Controllers\TranslatorService does not exist" regardless of the namespace being set in the controller correctly and the file being in the correct location. Any reason this would be going on?

route.php:

<?php Route::group(['prefix' => 'api', 'middleware' => 'response-time'], function () { Route::group(['prefix' => 'v1'], function () { Route::get('/', function () { App::abort(404); }); Route::resource('accounts', 'AccountController'); }); Route::group(['prefix' => 'v2'], function () { Route::get('/', function () { App::abort(501, 'Feature not implemented'); }); }); }); AccountController.php under app/ComdexxSolutions/Http/Controllers: Is a standard skeleton controller TranslationService.php is under the same path as AccountController and looks like: <?php namespace ComdexxSolutions\Http\Controllers; use InvalidArgumentException; use RuntimeException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; class TranslatorService { /** * Returns a class name base on a resource mapping. * The mapping comes from a config file (api.php). * * Example: `users` should return `\App\Models\User` * * @param string $resource * @return string * @throws NotFoundHttpException */ public function getClassFromResource($resource) { // This is the models namespace $modelsNamespace = Config::get('api.models_namespace', Config::get('api.app_namespace')); // This array contains mapping between resources and Model classes $mapping = Config::get('api.mapping'); if (!is_array($mapping)) { throw new RuntimeException('The config api.mapping needs to be an array.'); } if (!isset($mapping[$resource])) { throw new NotFoundHttpException; } return implode('\\', [$modelsNamespace, $mapping[$resource]]); } /** * Returns a command class name based on a resource mapping. * * Examples: * - getCommandFromResource('users', 'show') returns \App\Commands\UserCommand\ShowCommand * - getCommandFromResource('users', 'index', 'groups') returns \App\Commands\UserCommand\GroupIndexCommand * * @param string $resource * @param string $action * @param string|null $relation * @return string * @throws NotFoundHttpException */ public function getCommandFromResource($resource, $action, $relation = null) { $namespace = Config::get('api.app_namespace'); $mapping = Config::get('api.mapping'); // If the mapping does not exist, we consider this as a 404 error if (!isset($mapping[$resource])) { throw new NotFoundHttpException('The resource [' . $resource . '] is not mapped to any Model.'); } $allowedActions = ['index', 'store', 'show', 'update', 'destroy']; if (!in_array($action, $allowedActions)) { throw new InvalidArgumentException('[' . $action . '] is not a valid action.'); } // If we have a $relation parameter, then we generate a command based on it if ($relation) { if (!isset($mapping[$relation])) { throw new NotFoundHttpException('The resource [' . $resource . '] is not mapped to any Model.'); } $command = implode('\\', [ $namespace, 'Commands', $mapping[$resource] . 'Command', ucfirst($mapping[$relation]) . ucfirst($action) . 'Command' ]); } else { $command = implode('\\', [ $namespace, 'Commands', $mapping[$resource] . 'Command', ucfirst($action) . 'Command' ]); } // If no custom command is found, then we use one of the default ones if (!class_exists($command)) { if ($relation) { $command = implode('\\', [ 'ComdexxSolutions', 'Console', 'Commands', 'DefaultCommand', 'Relation' . ucfirst($action) . 'Command' ]); } else { $command = implode('\\', [ 'ComdexxSolutions', 'Console', 'Commands', 'DefaultCommand', ucfirst($action) . 'Command' ]); } } if (!class_exists($command)) { throw new NotFoundHttpException('There is no default command for this action and resource.'); } return $command; } } What could I be doing wrong?
Last updated 3 years ago.
0

It's kind of hard to follow what's going on because your code is not properly formatted.

Also, your directory structure is a bit weird: app/ComdexxSolutions/Http/Controllers. The standard directory structure is app/Http/Controllers.

Another weird thing is your namespace. You namespaced your class as ComdexxSolutions\Http\Controllers, but if that is your directory structure, it should be App\ComdexxSolutions\Http\Controllers.

0

Sign in to participate in this thread!

PHPverse

Your banner here too?

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.