我正在使用CakeHelper和cakephp 2.0。我想在保存到数据库之前从输入字段中提取一个21位数字,并且只将该数字存储在我的数据库中。
我目前的代码是:
if (!empty ( $this->request->data ) && ($this->request->is('post')))
{
preg_match("/[0-9]{21}/", $this->request->data, $field_id);
$this->InsightId->save($field_id[0]);
}
永远不会评估if语句,它永远不会进入preg_match。我究竟做错了什么?
答案 0 :(得分:0)
我的解决方案与Regex完全不同。我使用php爆炸' /'作为我的分隔符。我的代码现在看起来像这样:
if (!empty ( $this->request->data ) && ($this->request->is('post')))
{
$field_ids = explode('/', $this->request->data['InsightId']['field']);
foreach($field_ids as $field_id)
{
if(strlen($field_id) === 21)
{
$this->request->data['InsightId']['field'] = $field_id;
$this->InsightId->save($this->request->data);
}
}
}