You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP遍历数组时如何根据元素值动态分配配置(Laravel Okta场景)

解决方法

你可以直接用遍历出来的单条应用数据里的name字段,动态拼接配置仓库的键名,替换掉原来硬编码的固定键名即可,修改后的boot方法代码如下:

public function boot(OktaApp $oktaApp, Repository $repository)
{
    $oktaApps = $oktaApp
        ->where('name', 'oktaApp1')
        ->orWhere('name', 'oktaApp2')
        ->get()
        ->toArray();
            
    foreach ($oktaApps as $app) {
        // 用应用的name字段动态生成配置键
        $repository["services.{$app['name']}"] = [
            'client_id' => $app['client_id'],
            'client_secret' => $app['client_secret'],
            'redirect' =>  $app['redirect_uri'],
            'base_url' => $app['base_url'],
        ];
    }
}

扩展优化建议

如果后续新增Okta应用时不需要修改服务提供者代码,可以直接去掉查询条件,拉取所有Okta应用自动加载配置:

// 无需指定应用名,全量加载数据库中存储的所有Okta应用配置
$oktaApps = $oktaApp->get()->toArray();

只要应用的name字段值符合配置键命名规范,就能自动生成对应services.应用名的配置项,后续新增应用不需要调整当前代码。

内容的提问来源于stack exchange,提问作者CodeConnoisseur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:54:02