我当前正在将.env设置迁移到配置文件中。
我有一个url列表,我将从应用程序中调用它。BASE_URL会更改,所以我希望将其作为一个变量。。
在.env文件中,我可以调用BASE_URL作为变量,但在配置文件中,没有得到任何结果。
.env文件
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包时,我也有同样的问题。希望一个替代的解决方案也可以用于包开发。
正如我正确理解的那样,您希望在配置文件中有一个基本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
你可以做到这一点,
.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'(访问配置值