Как использовать функцию значений Kohana ORM, если имена полей моей формы не совпадают с именами столбцов таблицы?

Я использую Kohana 3.3 ORM и настроил метод правил для проверки. Теперь я хотел бы создать запись в своей таблице. Я хочу заполнить все значения моего объекта ORM, вызвав $ormtable->values($_POST), но моя проблема в том, что не все имена полей в массиве $_POST точно соответствуют имени столбца в таблице.

Например, в моей форме есть поле с именем «billing_address1», но соответствующий столбец таблицы — «address1».

Есть ли какой-то существующий метод в ORM, который уже делает это? Если нет, то как лучше всего сопоставить эти альтернативные имена полей?


person Chad    schedule 16.10.2013    source источник
comment
Я не верю, что для этого есть встроенное решение. Хотя вы можете легко скопировать $_POST во временный массив и вручную изменить ключи   -  person kero    schedule 17.10.2013


Ответы (1)


как сказал @kinakero, просто используйте временный массив

$post_array = $_POST;
$post_array['address1'] = $_POST['billing_address1'];
unset($post_array['billing_address1']);

$ormtable->values($post_array);
person Vladimir Dimitrov    schedule 17.10.2013
comment
Спасибо за ваш вклад. В итоге я сделал именно это, за исключением того, что обернул его в функцию, которая расширяет класс Arr, и просто передал два массива, исходный и один с сопоставлением ключей, которые нужно было изменить. gist.github.com/chadsaun/7043210 - person Chad; 18.10.2013
comment
Хорошее решение. В конце строки 11 отсутствует ', и комментарий, вероятно, не требует пояснений. - person kero; 19.10.2013