Estoy tratando de almacenar mis modelos en un espacio de nombres personalizado y una estructura de directorios como se muestra aquí:
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 № 1Si 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ó.