为什么CakePHP 2.3.0在我的表单帖子值中添加了“1”?

时间:2013-02-14 19:24:46

标签: forms cakephp post

我正在使用cakephp 2.3.0。我在手册中搜索了很长时间,但我还没有找到答案。此外,我搜索了互联网,但仍然没有找到我正在寻找的东西。所以,我在这里发帖子。请注意,我对cakephp很新。

情景:

  • 我有一个包含两个字段的简单表单:活动和邮政编码。
  • 我在表单上使用POST。
  • 当我在这些字段中键入一些值并提交时,我会回显那些'post'值/参数并显示在浏览器屏幕中。我输入的内容,我可以在屏幕上看到,但数字'1'被添加到我在表单中键入的内容的末尾。
  • 这是一个例子。我以“walk”和“44555”的形式输入这些值。然后我点击“提交”。帖子转到我的控制器的动作,然后调用我的视图。我的视图显示在浏览器屏幕上,我回显了那些'post'值。屏幕上的结果是'walk1'和'445551'。
  • 示例#2:如果我按照上面的步骤操作并且没有在我的表单中输入任何值(我稍后会添加错误检查),我在浏览器屏幕上看到的是“1”和“1”。 / LI>

我无法弄清楚为什么我将“1”的值添加到我的表单的POST值中? 如果有人试图提供帮助,我会很高兴在此帖子中包含任何其他额外的PHP代码。

这是我的FORM代码(从我看来)......我知道有DIV助手,但我会稍后再说:

echo $this->Form->create(null, array('url' => array('controller'=>'activities', 'action'=>'results'))); ?>
        <div class="box1" style="position:relative; top:10px; left:10px; float: left;"> 
            Search here.... <br>
            <hr>

                <?php echo $this->Form->input('activityName', array('size'=>'30', 
                                            'label'=>'Activity Name:', 'value'=>'i.e. walking, etc.'));?>
                <br>            
                <?php echo $this->Form->input('zip', array('size'=>'7', 'label'=>'Postal Code:')); ?>
            <br>
        </div>
    <div class="box1" align="right"> 
                <?php echo $this->Form->end('Go Search');?>
        </div>

这是我的控制器代码:

<?php

    class ActivitiesController extends AppController {

        public $helpers = array('Html', 'Form');

        public function index() {
            //other code....            
        }

        public function results() {
            $this->layout = 'second';    
            $name = $this->request->data['Activity']['activityName'];
            $pCode = $this->request->data['Activity']['zip'];
            $this->set('theName', $name);
            $this->set('theZip', $pCode);
            $this->set('results', $this->Activity->
                    find('all', array('conditions' => array('name' => $name, 'postal_code' => $pCode)))); 

            $this->set('title_for_layout', 'Results');
            $this->render();
        }
    }       
?>

我的最终视图代码。我遗漏了一些代码......只是显示了重要的部分:

<div style="position:relative; top:10px; left:5px; "> 
    <?php echo print_r($theName); ?>
        <br>
    <?php echo print_r($theZip); ?>

由于

1 个答案:

答案 0 :(得分:5)

1来自打印print_r() true的返回值(即1)。

换句话说:你不应该做echo print_r(),只做print_r()。该功能自行处理打印,您无需手动打印结果。

(另外,print_r()几乎绝不是打印输出值的最佳选择,除非在调试时,甚至CakePHP的debug()更适合。)