Laravel 5 Modelos Carpeta
Tengo un directorio llamado models
dentro de app/
donde coloco todas mis clases modelo. Ahora quiero cambiar el directorio donde el siguiente comando genera las clases generadas
php artisan make:model SomeModel
3 answers
No puedes y, si estás siguiendo la versión del universo de Laravel, no deberías. Laravel 5 proporciona, y asume, una convención de nomenclatura PSR-4 para todos sus archivos de clase. Esto significa que los modelos (y todas las clases) deben colocarse en función de su nombre completo de clase.
Cuando dices
php artisan make:model SomeModel
En realidad estás creando un modelo con el nombre completo de App\SomeModel
, por lo que artisan
crea el siguiente archivo.
app/SomeModel.php
Si usted dijo
php artisan make:model 'Test\SomeModel'
Usted estaría creando un modelo con el nombre completo App\Test\SomeModel
, y Laravel crearía el siguiente archivo
app/Test/SomeModel.php
Entonces, es el nombre de clase completo de su modelo (incluido el espacio de nombres) el que determina dónde está el archivo de definición de clase.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-16 23:21:55
Encontré que debería ser:
php artisan make:model ModelFolder\\SomeModel
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-02 05:14:51
Si desea crear modelos manualmente en una carpeta específica. Ejemplo si desea crear el modelo info
en la carpeta Models
. Cree un archivo llamado info.php
dentro de los modelos de carpetas que creó anteriormente. Aquí está usted debe escribir código como este en info.php
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Info extends Model
{
// your code
protected $table = 'tb_users';
}
Por supuesto, también puede usar el comando Artisan
php artisan make:model "Models\Info"
Si desea llamar a ese modelo Info
crea una vista
<?php
$users = App\Models\Info::all();
foreach ($users as $user) {
echo $user->name;
}
Mostrará todos los nombres de los usuarios
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-17 04:27:57