Я новичок в поставщике услуг Laravel. Все, что я хочу, это извлечь данные из базы данных и вернуть их, чтобы мой файл конфигурации мог получить доступ к этим данным.
Как я могу сделать это в поставщике услуг Laravel.
Я создаю собственного поставщика услуг. Хорошо, я добавлю запрос в метод boot(). Как я могу получить доступ к этим данным из другого места в моем приложении?
Пример использования метода загрузки для доступа к базе данных и ее публикации во временном ключе конфигурации.
class YourServiceProvider extends ServiceProvider
{
public function boot()
{
$welcomeMessage = "Welcome " . \App\User::first()->name;
config(['your-namespace.message' => $welcomeMessage ]);
}
Позже в других файлах вашего приложения вы можете получить к нему доступ следующим образом.
Route::get('/', function () {
return config('your-namespace.message');
});
Это будет делать это для каждого запроса?
@bandejapaisa да
Но это не рекомендуется. Когда вы впервые клонируете и запускаете composer install
без фактического подключения к базе данных, он вернет ошибку, когда laravel попытается обнаружить новые пакеты. Зависит от того, где вы собираетесь использовать эти конфигурации, если они находятся в контроллере, возможно, лучшим вариантом будет использование промежуточного программного обеспечения.
Можете ли вы объяснить, что вы подразумеваете под «чтобы мой файл конфигурации мог получить доступ к этим данным»? Вы делаете пакет? Если это так, вы можете попробовать поместить запросы к базе данных в метод сервис-провайдера пакетов
boot
. Затем используйте эти данные для создания конфигурации, прежде чем опубликовать ее. Все в методе загрузки.