cakephp3-无法将表单数据发布到控制器功能

时间:2017-06-05 05:27:17

标签: forms cakephp cakephp-3.0

我有一个联系我们表单,用户输入数据并提交。需要在控制器功能中访问此数据,以便我可以向管理员发送邮件,通知最近收到的用户请求。

但是当我按下提交按钮时,没有任何反应。表单只是重新加载,并向用户显示联系人表单(查看页面)。我不知道为什么数据没有传递给控制器​​功能。

我是CakePHP框架的新手,我使用CakePHP3进行开发。

这是我的表格:

$dateexpired = $_POST['dateexpired'];
$new_dateexpired = date("Y-m-d",strtotime($dateexpired));
$dateissued = $_POST['dateissued'];
$new_dateissued = date("Y-m-d",strtotime($dateissued));

我的控制器功能是:

<?php echo $this->Form->create(null, ['url' => ['controller' => 'Pages', 'action' => 'contactus']]); ?>
    <div class="col-md-6">
        <?php echo $this->Form->input('fname', ['placeholder' => 'Your name.' , 'id' => 'fname', 'required' => 'required']); ?>
    </div>
    <div class="col-md-6">
        <?php echo $this->Form->input('mail', ['placeholder' => 'Your email.' , 'id' => 'mail', 'required' => 'required']); ?>
    </div>
    <div class="col-md-6">
        <?php echo $this->Form->input('subject', ['placeholder' => 'Write something.', 'id' => 'subject']); ?>
    </div>

    <div class="col-md-9">
        <?php echo $this->Form->button(__('Submit')); ?>
    </div>         
<?php echo $this->Form->end(); ?>

有谁能告诉我我犯的错误?

1 个答案:

答案 0 :(得分:1)

我认为您的表单正在提交,但不是通过post方法。所以我想说的是,请在提交表格之前进行更改。

$pages ='';
    if ($this->request->is('post')) 
    {
        echo "Request is post";die;
        $pages =   $this->request->data('Contact');
    }else{
        echo "request is not post";die;
    }
    $this->set(compact('pages'));
    $this->set('_serialize', ['pages']);

现在检查,即在显示屏上打印。然后我可以帮助你。

  

记住: - 填写表格,然后在更改控制器方法后,再按提交方法。