在配置文件中创建一个 base_url(变量) - Laravel 配置

Creating a base_url(variable) in the config file - Laravel Config

我目前正在将我的 .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 文件

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 包时遇到了同样的问题。希望也可以使用替代解决方案进行包开发。

你可以做到,

.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') 访问配置值

我对你的理解是正确的,你希望在你的配置文件中有一个基础 url 并将其用于同一文件中的其他配置变量。由于配置文件是 .php 你可以使用类似的东西:

config/url.php中:

<?php

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

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

然后您可以使用 Laravel's dot notation 访问变量。请记住,点之前的部分是您使用的配置文件的简称 (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