来自数据库的PHP映射值

时间:2019-04-23 10:50:19

标签: php laravel mapping

我正在尝试在两个表之间创建一个映射,然后应该提供一个数组(预期结果可以在下面看到)。

如果用户单击用户界面中的按钮(action_type = label),则会使用action_type向DB表Parameter发出请求。始终随请求一起发送货件ID,用户ID和action_type。

应从此处创建映射。

我有三个桌子。

在表Parameter I中,具有action_type标签所需的参数。 例如,如果我需要参数“包裹”值,那么代码应该能够从表中的发运中找到该值并采用shipment_identification值。

表:参数

╔════╦═════════════╦════════════════╦═════════════════════════╗
║ id ║ action_type ║ parameter_name ║ parameter_value         ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 1  ║ Label       ║ parcels        ║ shipment_identification ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 2  ║ Label       ║ printType      ║ printType               ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 3  ║ Label       ║ printFormat    ║ printFormat             ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 4  ║ Label       ║ user           ║ username                ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 5  ║ Label       ║ pass           ║ password                ║
╚════╩═════════════╩════════════════╩═════════════════════════╝

表:User_configurations

╔════╦═════════╦═══════════════════════╦═══════════════════╗
║ id ║ user_id ║ user_config_parameter ║ user_config_value ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 1  ║ 1       ║ username              ║ ABC               ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 2  ║ 1       ║ password              ║ DEF               ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 3  ║ 1       ║ printType             ║ A4                ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 4  ║ 1       ║ printFormat           ║ ZPL               ║
╚════╩═════════╩═══════════════════════╩═══════════════════╝

表:发货

╔════╦═════════╦═════════════════════════╗
║ id ║ user_id ║ shipment_identification ║
╠════╬═════════╬═════════════════════════╣
║ 1  ║ 1       ║ 0123456789              ║
╚════╩═════════╩═════════════════════════╝

从数据库中查询当前的用户配置和发货。

预期结果将是此数组。对于action_type等于label的所有参数,我需要第二个和第三个表中的值。


$request_params = [
            'form_params' => [
                'parcels' => '0123456789',
                'printType' => 'A4',
                'printFormat' => 'ZPL',
                'user' => 'ABC',
                'pass' => 'DEF'
            ]
        ];

我尝试通过多个foreach循环解决此问题,但无法完成,最终得到以下结果:


foreach ($parameters as $parameter) {
    $request_params['form_params'][$parameter->parameter_name] = $userConf->user_config_value;
}


Array ( [form_params] => Array ( [printFormat] => A4 [parcels] => A4 [printType] => A4 ) )

我了解到,当前我的代码正在使用DB中的每个单个参数值的最后一个值,但是我如何能够通过使用表Parameter进行映射来从表User_configuration和表Shipments中分配正确的值。

亲切的问候,

0 个答案:

没有答案