Я пытаюсь создать отображение между двумя таблицами, которое затем должно предоставить массив (ожидаемые результаты можно увидеть ниже).
Если пользователь нажимает кнопку (action_type = label) в пользовательском интерфейсе, то в таблицу параметров БД отправляется запрос с параметром action_type. С запросом всегда высылается идентификатор отгрузки и идентификатор пользователя и 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 для каждого отдельного значения параметра, но как я смогу назначить правильное значение из таблицы User_configurations и таблицы Shippingments, используя таблицу Parameter для сопоставления.
С уважением,