У меня есть сомнение в дизайне, которым я хотел бы поделиться.
У меня есть модель в Laravel с Наблюдателем в восстановлено :
class MailingObserver
{
public function retrieved($mailing)
{
// we retrieve HTML content from disk file
$mailing->setAttribute('content', \Illuminate\Support\Facades\Storage::disk('mailings')->get("{$mailing->id}-{$mailing->slug}.html"));
$mailing->syncOriginal();
}
}
, которое извлекаетатрибут хранится в виде простого текста вместо базы данных.
Сайт представляет собой мультибрендовую платформу, поэтому диск («почтовые рассылки») отличается для каждого зарегистрированного пользователя.Эта конфигурация загружается в промежуточное ПО в соответствии с текущим зарегистрированным пользователем.
До этого все в порядке.
Теперь «проблема».У меня есть контроллер, который внедряет сущностьДиск 1024 * все еще не настроен.
Я не знаю, как изменить этот порядок: сначала выполнить middleare, затем инъекцию модели.
Один подход
Я попытался в AppServiceProvider добавить:
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$middleware = new \App\Http\Middleware\CheckBrandHost();
$middleware->setBrandInformation(request());
$middleware->loadBrandConfig(request()->get('brand.code_name'));
}
Вы бы одобрили это решение?Какие проблемы могут вызвать у меня это?Это правильный способ сделать это?
Спасибо всем!