/ / Laravel 5 Clase de espacio de nombres de modelo no encontrada - php, laravel, namespaces, laravel-5

No se encuentra la clase de espacio de nombres de modelo Laravel 5 - php, laravel, namespaces, laravel-5

Estoy tratando de almacenar mis modelos en un espacio de nombres personalizado y una estructura de directorios como se muestra aquí:

enter image description here

Yo tengo:

namespace ModulesCore;

use AppHttpControllersController;

class TestController extends Controller {

public function index(){
$user = new User;
return view("core::test");
}

}

Pero estoy recibiendo:

FatalErrorException in TestController.php line 8:
Class "ModulesCoreUser" not found

Lo que está mal de todos modos, así que pensé que debía ser "ModulesCoreModelsUser". Intenté esto y sigo teniendo el mismo error (solo con un nombre de clase diferente).

Mi modelo:

namespace ModulesCore;

use IlluminateDatabaseEloquentModel as Eloquent;

class User Extends Eloquent {
protected $table = "users";
}

¿Cómo puedo acceder a este modelo en el TestController?


Route::group(array("namespace" => "ModulesCoreControllers"), function() {
Route::get("/test", ["uses" => "TestController@index"]);
});

Respuestas

3 para la respuesta № 1

Si su controlador está almacenado en Módulos / Núcleo / Controladores, el espacio de nombres debe estar namespace ModulesCoreControllers;

Y de igual manera, si el modelo se almacena en Módulos / Núcleo / Modelos, su espacio de nombres es namespace ModulesCoreModels;

Luego, en el controlador, impórtalo antes de usarlo:

<?php namespace ModulesCoreControllers;

use ModulesCoreModelsUser;
use AppHttpControllersController;

class TestController extends Controller {

public function index(){
$user = new User;
return view("core::test");
}

}

0 para la respuesta № 2

Debes editar tu routes.php archivo:

Route::group(array("namespace" => "ModulesCoreControllers"), function() {
Route::get("/test", ["uses" => "ModulesCoreTestController@index"]);
});

para usar completo junto con espacio de nombres


0 para la respuesta № 3

Tuve el mismo problema que el anterior. En mi caso tuve el siguiente espacio de nombres:

namespace ModulesXMLApi;

Tengo el mismo error que el anterior. Cuando cambié el espacio de nombres a lo siguiente:

namespace ModulesXmlApi;

A continuación, ejecute el siguiente comando: compositor dump-autoload

Entonces funcionó.