Создание base_url (переменной) в файле конфигурации - Laravel Config - PullRequest
0 голосов
/ 30 марта 2020

В настоящее время я переношу свои настройки .env в конфигурационные файлы.

У меня есть список URL-адресов, которые я буду вызывать из приложения. BASE_URL изменится, поэтому я хочу сохранить его как переменную.

В файле .env я могу вызвать BASE_URL как переменную, но в файле конфигурации я не получаю никакого результата ,

.env file

BASE_URL = www.url.com
URL1 = ${BASE_URL}/url1,
URL2 = ${BASE_URL}/url2,
URL3 = ${BASE_URL}/url3,

В папке конфигурации> Созданный URL. php file

url. php

<?php
return[
'BASE_URL' => 'www.url.com',
'URL1' => 'www.url.com/url1',
'URL2' => 'www.url.com/url2',
'URL3' => 'www.url.com/url3',
];

То, что я сделал (обходной путь) !!

<?php
    return[
    'URL1' => env('BASE_URL')'/url1',
    'URL2' => env('BASE_URL')'/url2',
    'URL3' => env('BASE_URL')'/url3',
    ];

Я хотел бы знать, единственное ли это решение или какой-то другой лучший способ. Я хотел бы перенести все настройки в конфигурационный файл.

У меня был тот же квест, когда я создавал пакет laravel. Надеюсь, что альтернативное решение также может быть использовано для разработки пакетов.

Ответы [ 3 ]

0 голосов
/ 30 марта 2020

Вы можете сделать это,

.env

BASE_URL = www.url.com
URL1 = ${BASE_URL}/url1
URL2 = ${BASE_URL}/url2
URL3 = ${BASE_URL}/url3

config / url. php

return[
  'URL1' => env('URL1','www.url.com/url1'),
  'URL2' => env('URL2','www.url.com/url2'),
  'URL3' => env('URL3','www.url.com/url3'),
];

и использовать config ('url.URL1') для доступа к значениям конфигурации

0 голосов
/ 30 марта 2020

Как я правильно понял, вы хотите иметь один базовый URL в вашем конфигурационном файле и использовать его для других переменных конфигурации в том же файле. Поскольку файлы конфигурации .php, вы можете использовать что-то вроде:

В config/url.php:

<?php

$baseURL = 'http://www.example.com';

return [
    'base_url' => $baseURL,
    'url1' => $baseURL . '/login',
    'url2' => $baseURL . '/about',
];

Затем вы можете получить доступ к переменным, используя точечную запись Laravel . Помните, что часть перед точкой - это короткое имя файла конфигурации, который вы использовали (url.php):

{{ Config::get('url.base_url') }}
{{ Config::get('url.url1') }}
{{ Config::get('url.url2') }}

Будет выводить:

http://www.example.com
http://www.example.com/login
http://www.example.com/about 
0 голосов
/ 30 марта 2020

Чтобы создать собственную конфигурацию в Laravel, вы можете сделать это:

config / urls. php

return [
    'url1' => '/path1/',
    'url2' => '/path2/',
    'url3' => '/path3/',
];

Чтобы получить опцию В нашем конфигурационном файле вы можете вызвать метод stati c get на фасаде Config из вашего контроллера следующим образом:

use Config;

public function index()
    {   
        $data = Config::get('urls.url1');
        $data = env('BASE_URL') . $data ;
        dd($data);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...