0

我在测试服务器和生产服务器上有一个带有强化的 laravel 8x jetstream 版本。

测试:prj_l8xtest.com 生产:prj_l8xprod.com

我想激活或停用一些由 fortify 提供的页面,可以从这里激活或停用它们 -> prj_l8xlocal/config/fortify.php:

.
.   
.
.
'features' => [
    Features::registration(),
    Features::resetPasswords(),
    Features::emailVerification(),
    Features::updateProfileInformation(),
    Features::updatePasswords(),
    Features::twoFactorAuthentication([
        'confirmPassword' => true,
    ]),
],

我想根据测试或生产激活或停用其中一些页面。

我想我可以用 if(){} 检查有问题的 url(生产或测试),但我不知道如何获取 url。还是有比我的建议更好的解决方案?

4

1 回答 1

0

配置文件是普通的 PHP,因此您可以在其中编写普通的 PHP 脚本,然后根据需要返回结果。但是问题是第一次读取配置时没有加载请求信息,这就是为什么我建议服务提供商在引导方法中修改配置值的原因。您可以尝试AppServiceProvider在引导方法中添加以下内容:

public function boot() {
   // other boot code
   if (app()->environment('production')) {
      config([ 'fortify.features' => array_merge(config('fortify.features'), [
            // production only features
      ]);
   }
}

请注意,此时可能并非所有请求信息都可用,因此您可能需要直接访问$_SERVER变量以查找所需信息。

于 2020-11-17T18:10:18.920 回答