我正在尝试在两个表之间创建一个映射,然后应该提供一个数组(预期结果可以在下面看到)。
如果用户单击用户界面中的按钮(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中分配正确的值。
亲切的问候,