首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检索我的CakePHp控制器中的移动号码字段值

如何检索我的CakePHp控制器中的移动号码字段值
EN

Stack Overflow用户
提问于 2009-07-16 03:59:12
回答 1查看 2.3K关注 0票数 0

我在视图页面中创建了一个输入字段,如下所示

代码语言:javascript
运行
复制
    <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>

这些都是在页面中生成的,.I正在检索CakePHp控制器中此页面中的内容值。

代码语言:javascript
运行
复制
 foreach ($_POST as $key => $value):
    echo $key;echo $value;
 endforeach;

对于以上所有字段,我得到了正确的答案,如First_Name=A&Emailid=aruna@tcs.com&Mobile_Number=3

但仅就我的Mobile Number字段而言,我得到的是最后一个id的值,类似于6-2。HOw检索在三个字段(6,6-1,6-2)中给出的移动号码的全部值??请推荐我。

编辑:

代码语言:javascript
运行
复制
     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;

我使用上面的方式保存密钥及其值(例如.控制器不知道填充页中的所有字段是什么)。填充页可能/可能不包含字段电话Number.How do,我保证该页有Phonenumber字段,并使用其键保存其值。

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

EN

回答 1

Stack Overflow用户

发布于 2009-07-16 06:30:45

如果你在使用蛋糕,你真的应该学习和使用蛋糕。

就像蛋糕上的水流一样:

代码语言:javascript
运行
复制
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

这对你意味着什么:

$this->data 是表单正确工作的核心。不碰$_POST!使用用于创建表单的蛋糕方法,并使用与数据库中使用的字段相同的名称。这为很多蛋糕“自动”提供了便利。您不需要手工组装一个数组来传递到数据库,而是对从开始到结束的所有东西都使用相同的名称,只需传递数组。$this->data将自动从Controller传递回视图(即表单),如果使用Cake FormHelper,则字段将自动从该字段中填充。

在提交表单和保存数据之间,您应该尽量减少所做的工作。理想情况下,您的控制器看起来仅如下所示:

代码语言:javascript
运行
复制
if (!empty($this->data)) {
    if ($this->Model->save($this->data)) {
        $this->redirect(array('action' => 'next_step'));
    }
}

这就是你所需要的全部代码,它会

  • 显示页面
  • 处理表格提交
  • 验证输入
  • 如果验证失败,请重新填写表单字段
  • 如果验证成功,则保存数据
  • 如果数据已成功保存,则重定向到下一步。

如果表单字段与数据库字段不对应1:1,则只需要在if(!empty($this->data))$this->Model->save($this->data)之间调整所需的位

代码语言:javascript
运行
复制
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'));
    }
}

如果要验证提交的表单数据是否完整,则只需验证填写模型中的适当规则。每当您发出$this->Model->save()时,模型将在保存之前自动检查规则,如果不满足,则自动检查return false

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1135316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档