Папка Моделей Laravel 5

у меня есть каталог с именем models внутри app/ где я размещаю все мои классы модели. Теперь я хочу изменить каталог, в котором следующая команда выводит сгенерированные классы

php artisan make:model SomeModel

3 ответов


вы не можете и, если вы рубите к версии вселенной Laravel, вы не должны. Laravel 5 предоставляет и предполагает соглашение об именах PSR-4 для всех своих файлов классов. Это означает, что модели (и все классы) должны быть размещены на основе их полное имя класса.

когда вы говорите

php artisan make:model SomeModel

вы фактически создаете модель с полным названием App\SomeModel, так что artisan создает следующий файл.

app/SomeModel.php

если вы сказали

php artisan make:model 'Test\SomeModel'

вы будете создавать модель с полным названием App\Test\SomeModel, и Laravel создаст следующий файл

app/Test/SomeModel.php

Итак, полное имя класса вашей модели (включенное пространство имен), которое определяет, где находится файл определения класса.


Я нашел, что это должно быть:

php artisan make:model ModelFolder\SomeModel

если вы хотите создавать модели вручную в определенной папке. Например, если вы хотите создать модель infoв папке Models. Создать файл с именем info.php внутри модели папок, которые вы создали раньше. Здесь вы должны написать такой код в info.php

<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Info extends Model
{
    // your code
    protected $table = 'tb_users';
}

конечно, вы также можете использовать команду Artisan php artisan make:model "Models\Info"

если вы хотите назвать эту модель Info создать представление

<?php
$users = App\Models\Info::all();

foreach ($users as $user) {
    echo $user->name;
}

он будет отображать все имена пользователей