홈>
작업중인 멀티 테넌트 앱이 있는데 소셜 라이트 패키지를 추가하는 동안 데이터베이스에서 특정 웹 사이트에 대한 사용자 정의 페이스 북 client_id 및 client_secret을로드하려고했습니다. 각 사이트에는 자체 사용자 정의 페이스 북 키가 있기 때문에 실제로 env 변수를 사용할 수 없습니다.
아직로드되지 않았기 때문에 config/services.php 파일에서 모델의 메소드를 실제로 호출 할 수없는 것 같습니다. 나는 아무 소용이 문제를 해결하기 위해 요청 라이프 사이클 문서를 통과 시도했습니다.
또한 비즈니스 모델의 방법에서 가치를 얻고 그것을 상수로 설정하기 위해 서비스 제공자를 만들려고했지만 여전히 앱에서 사용할 수있을 때까지 config/services.php 파일이로드되었습니다 .
여기서 데이터베이스 값을 사용할 수 있습니다 :
config/services.php
'facebook' => [
'client_id' => \App\Business::getAppKeys()->fb_client_id,
'client_secret' => 'your‐fb‐app‐secret',
'redirect' => 'http://your‐callback‐url',
],
오류 :
Fatal error: Call to a member function connection() on null
- 답변 # 1
- 답변 # 2
내가 말하는 것에 대한 정말 빠른 예입니다.
다음을 사용하면 나머지 응용 프로그램이 초기화되기 전에 데이터베이스를 쿼리하고 세부 정보를 가져와 구성 파일에 쓸 수 있습니다.
경로에서 값에 액세스하는 방법을 확인 하시겠습니까?
// app/Providers/ConfigServiceProvider.php namespace App\Providers; use App\Models\Country; use Illuminate\Support\ServiceProvider; class ConfigServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { $countries = Country::pluck('name', 'iso_code'); config()->set(['app.countries' => $countries->toArray()]); } /** * Register any application services. * * @return void */ public function register() { // } } // config/app.php // ... 'providers' => [ // ... App\Providers\ConfigServiceProvider::class, // ... ], // ... // routes/web.php Route::get('config', function () { dd(config('app.countries')); });
관련 자료
- java - 데이터베이스의 나열된 값을 Anylogic 871의 변수에 저장하는 방법은 무엇입니까?
- 내 데이터베이스는 내가 가져 오기에서 게시 할 때 모든 값을 0으로 기록합니다 Nodejs mySql
- jquery - Laravel을 사용하여 JSON 데이터를 검색하고 데이터베이스에 저장하는 방법
- php - JSON 데이터베이스 업데이트 누락 키 값
- postgresql - 단일 Postgres 데이터베이스 테이블 열의 여러 값
- php - laravel 7 - 컬렉션에서 중복을 찾고 낮은 값을 유지하고 다른 높은 값을 제거합니다
- sql - Java 메소드를 호출하여 H2 데이터베이스의 새 행에 대한 기본값 생성
- php - 데이터베이스 데이터에서 업데이트 할 수 없습니다 라 라벨
- php - Laravel의 테이블 열에서 값의 합계를 얻는 방법
- php - Laravel 암호화 값 복호화
- php - laravel - 데이터베이스에서 smtp 설정을 설정하는 방법
- php - 과거에서 업로드 된 이미지가있는 laravel 사용자 mysql 데이터베이스 행에 더 많은 이미지를 첨부/업로드하는 방법
- Laravel 8에서 vuejs를 사용하여 데이터베이스에서 데이터 가져 오기
- 데이터베이스에 내 정보를 저장하는 Laravel CRUD 문제
- mysql - 데이터베이스의 ifnull - 쿼리 빌더 laravel?
- Laravel 7 - 라 라벨 7 - 데이터베이스에서 하나의 행만 선택하고 블레이드에 전달
- Python 커넥터를 사용하여 매개 변수를 사용하여 MySQL 데이터베이스로 정수 값을 가져 오는 방법
- Laravel 7 - Laravel 7- 데이터베이스 값 또는 변수에 저장된 값을 Laravel Blade에 전달
- sql - 데이터베이스에서 장르, 구매 날짜, 생산 연도 열에 NULL 값이있는 레코드 수입니다 단일 번호를 찾고 있습니다
- android - 실시간 데이터베이스에서 키 값을 업데이트하려면 어떻게해야합니까?
관련 질문
- php : Laravel 모델 및 makeHidden
- php : Laravel 5-사용자 이름과 비밀번호가 테이블과 일치하는지 확인하는 방법은 무엇입니까?
- php : Laravel 5.1에서 FormRequest가 JSON을 반환하도록 강제하는 방법은 무엇입니까?
- php : .env에 db 매개 변수가 없으면 LaravelInstaller 패키지가 작동하지 않습니다.
- php : 라 라벨 웹 사이트가 라이브 서버에서 동일한 경로를 가진 두 개의 다른 경로에서 실행되는 이유
- php : 응답 code 250이 필요하지만 code "530"이 있으며 메시지 "530 5.7.1 인증 필요
- php : Laravel에서 중복 데이터 확인
- PHP에서 문자열을 부울 다중 조건으로 변환하는 방법
- php : Laravel : 현재 경로 이름을 얻는 방법? (v5… v7)
- php : laravel 5.6.4의 laravel 8 프로젝트
정말 이러지 말아야합니다. 모델에서 DB 연결을 초기화하는 것은로드 할 모든 설정이 필요하며, 당신은 당신의 구성을 정의하기 위해 이러한 연결을 사용하려는. 순환 종속성 문제가 있음을 발견했습니다.
사용하려는 소셜 라이트 패키지를 살펴보고 싶습니다. 런타임시 자격 증명을 설정/재정의하는 기능이 서비스에없는 경우이를 구현할 수있는 자체 구현으로 서비스를 확장 할 수 있는지 확인하십시오. 나는 그것이 당신이하려는 일을 성취 할 수있는 유일한 방법이라고 생각합니다.
이 외에도 구성 파일은 스칼라 값과 배열로만 구성되어 캐시 될 수 있습니다.