У меня есть каталог под названием models
внутри app/
, где я помещаю все мои классы моделей. Теперь я хочу изменить каталог, в котором следующая команда выводит сгенерированные классы
php artisan make:model SomeModel
У меня есть каталог под названием models
внутри app/
, где я помещаю все мои классы моделей. Теперь я хочу изменить каталог, в котором следующая команда выводит сгенерированные классы
php artisan make:model SomeModel
Вы не можете и, если вы используете версию вселенной 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;
}
Отобразится все имя пользователя
Вы также можете посмотреть файл www/yourfolder/database/php, созданный при создании модели.
Если вы слишком ленивы и не хотите вводить слово " Models
каждый раз, вы можете попробовать это в моей https://github.com/bangnokia/laravel-models-folder
Посмотрите это, используя этот учебник на носителе https://medium.com/@codingcave/organizing-your-laravel-models-6b327db182f9. Это лучшее решение для расширения ModelMakeCommand
так что вместо php artisan make:model 'Test\SomeModel'
вы запустите php artisan make:model SomeModel
и вы все равно получите пространство имен 'Test\SomeModel'
с SomeModel.php
в 'Test'
папка