如何在我的CakePHp控制器中检索Mobile Number字段值

如何在我的CakePHp控制器中检索Mobile Number字段值,php,html,cakephp,Php,Html,Cakephp,我在查看页面中创建了一个输入字段,如 <div class="input text"> <label for="2">First Name (required) </label> <input type="text" value="" style="width: 300px;" id="2" class="required" name="First Name"/> </div> <d

我在查看页面中创建了一个输入字段,如

    <div class="input text">
      <label for="2">First Name (required) </label>
      <input type="text" value="" style="width: 300px;" id="2" class="required" name="First Name"/>
     </div>

  <div class="input text">
   <label for="5">Emailid</label>
   <input type="text" value="" style="width: 300px;" id="5" name="Emailid"/><
 /div>
<div class="input text">
<label for="6">Mobile Number</label>
<input type="text" value="" style="width: 30px;" id="6" name="Mobile Number"/>
<input type="text" value="" style="width: 30px;" id="6-1" name="Mobile Number"/>
<input type="text" value="" style="width: 70px;" id="6-2" name="Mobile Number"/>
</div>
对于上述所有领域,我得到了如下正确答案 First_Name=A&Emailid=aruna@tcs.com&移动电话号码=3

但仅对于我的手机号码字段,我就得到了最后一个id的值,如6-2。为什么。?如何检索三个字段(6,6-1,6-2)中给出的手机号码的完整值?请建议我

编辑:

     foreach ($_POST as $key => $value):
     $mobile_number = implode('', $_POST['number']); 
   echo $mobile_number;
    $this->data['Result']['form_id']=$formid; 
    $this->data['Result']['label']=Inflector::humanize($key); 
     $this->data['Result']['value']=$value; 
   $this->Form->submitForm($this->data);
    endforeach;
我使用上面的方法保存键及其值(即,控制器不知道填充页面中的所有字段都是什么)。fillpage可能/可能不包含字段Phonenumber。如何确保该页具有Phonenumber字段并使用键保存其值


注意:$key是字段名,$value是我的字段值。仅对于Phonenumber字段,值是数组,在所有其他情况下,它只是一个值。

如果您正在使用Cake,您确实应该学习并使用Cake

简单介绍一下蛋糕中的流程:

Form page -> Submit
    ^           |
    |           v
    |        Controller // Form data is in $this->data
    |           |
    |           v
    |        $this->Model->save($this->data); -> Model
    |                                              |
    |                                              v
    -------- Controller <----------------------- Data validation
                             validation no good    |
                                                   | validation okay
                                                   v
             Controller <----------------------- Actually save data
                 |
                 v
          Go somewhere else
这就是你需要的所有代码,它会的

  • 显示页面
  • 处理表格提交
  • 验证输入
  • 如果验证失败,请重新填写表单字段
  • 如果验证成功,请保存数据
  • 如果成功保存数据,则重定向到下一步
如果表单字段与数据库字段不符合1:1,请仅在(!empty($this->data))和
$this->Model->save($this->data)之间调整所需的位。


如果要验证提交的表单数据的完整性,请仅执行以下操作。无论何时发出
$this->Model->save()
,模型都会在保存前自动检查规则,如果不符合规则,则
返回false

首先,您应该使用Cake方法创建表单,并使用Cake
$this->data
变量处理结果。到目前为止,这段代码没有什么特别之处。实际上,我在其他函数中也在做同样的事情。但是在这个提交操作中,控制器不知道字段名是什么,就像你说的手机号码一样。仅此而已,我使用的是类似于foreach的$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$这->数据['Result']['label']=屈折因子::人性化($key)$此->表单->提交表单($this->data);endforeach;不要使用$\u POST!是的,您可以,因为CakePHP中仍然有PHP,但是您实际上没有使用Cake。要么用蛋糕的方式做,要么根本不用蛋糕。如果你做一个或另一个,你可能不会有这个问题。另外,
$this->Form->submitForm($this->data)
有什么作用?$this->Form->submitForm($this->data)将我所有的控制器设置发送到保存数据库条目的模型。我会检查是否可以用一个简单的
$this->Model->save($this->data)
来代替。如果绝对必要,在模型中创建一个
beforeSave()
hook。不管怎样,我肯定会重新命名这个函数。表单已经提交,这个函数名令人尴尬地误导。
Form page -> Submit
    ^           |
    |           v
    |        Controller // Form data is in $this->data
    |           |
    |           v
    |        $this->Model->save($this->data); -> Model
    |                                              |
    |                                              v
    -------- Controller <----------------------- Data validation
                             validation no good    |
                                                   | validation okay
                                                   v
             Controller <----------------------- Actually save data
                 |
                 v
          Go somewhere else
if (!empty($this->data)) {
    if ($this->Model->save($this->data)) {
        $this->redirect(array('action' => 'next_step'));
    }
}
if (!empty($this->data)) {
    $this->data['Model']['mobile_number'] = implode('-', $this->data['Model']['mobile_number']);
    if ($this->Model->save($this->data)) {
        $this->redirect(array('action' => 'next_step'));
    }
}