laravel перенос фабрик в подмодуль
Как перенести фабрики из database\factories в submodule\factories, чтобы laravel их видел? Пробовал просто перетащить папку и в composer изменить
"classmap": [
"database/seeds",
"database/factories"
]
на
"classmap": [
"database/seeds",
"submodule/factories"
]
но фреймворк их не видит. Делал composer dump-autoload -o Пробовал прописать в сервис провайдере Как правильно выполнить перенос?
Ответы (1 шт):
Автор решения: Jigius
→ Ссылка
Путь до папки `APP_ROOT/database/ влияет не только на поиск фабрик, но и на сидеры и миграции.
Путь до папки задан в коде класса Illuminate\Foundation\Application и через конфигурационные файлы его не переопределить на другое значение.
Но это можно сделать через реализацию своего сервис-провайдера, например так:
- В папку
APP_ROOT/app/Providers/положите файлDbPathServiceProvider.php:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class DbPathServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
app()->useDatabasePath("submodule");
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
- Подключите созданный сервис-провайдер в файле
APP_ROOT/config/app.php:
...
'providers' => [
....
App\Providers\DbPathServiceProvider::class
],
...