【问题标题】:How do I use Kohana ORM's values function when my form field names do not match the table column names?当我的表单字段名称与表列名称不匹配时,如何使用 Kohana ORM 的值函数?
【发布时间】:2013-10-16 18:35:31
【问题描述】:

我正在使用 Kohana 3.3 ORM 并设置了规则方法进行验证。现在我想实际为我的表创建一条记录。我想通过调用 $ormtable->values($_POST) 将所有值填充到我的 ORM 对象中,但我的问题是并非 $_POST 数组中的所有字段名称都与表中的列名称完全匹配。

例如,我的表单有一个名为“billing_address1”的字段,但对应的表列是“address1”。

ORM 中是否有一些现有的方法可以做到这一点?如果不是,映射这些备用字段名称的最佳方法是什么?

【问题讨论】:

  • 我不相信有一个内置的解决方案。尽管您可以轻松地将$_POST 复制到临时数组并手动复制change the keys

标签: php orm kohana kohana-orm kohana-3.3


【解决方案1】:

正如@kinakero 所说,只需使用临时数组

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

$ormtable->values($post_array);

【讨论】:

  • 感谢您的意见。我最终只是这样做了,只是将它包装在一个扩展 Arr 类的函数中,并且只传递两个数组,一个是源数组,另一个是需要更改的键的映射。 gist.github.com/chadsaun/7043210
  • 不错的解决方案。第 11 行末尾缺少 ',评论可能不言自明
猜你喜欢
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多