Cakephp 3自动将值设置为用户定义的表单

时间:2016-06-10 10:11:13

标签: cakephp cakephp-3.x

我可以使用Cakephp FormHelper创建的表单添加/编辑/删除。

但我想使用我自己的表格 ,不使用html帮助。这是一个很大的形式。在编辑中,我设置了一个要查看的实体。我给与列名相同的元素命名。

但是没有设置值。

视图位于插件中。

任何人都可以告诉我如何在用户定义的表单中自动设置值。

我在表单中创建了一个表单标签,如下所示,希望设置“context”并显示值

<?php echo $this->Form->create( $company ); ?>

并结束,表格的结尾。

<?php echo $this->Form->end(); ?>

在表单标签之间有许多html表单元素。 我发布了其中一个我已将其名称设置为列名

的名称
      <div class="form-group panel">
        <h6 for="pt-name">Former Name1</h6>
        <input type="text" name="company_former_name_one" placeholder="Former Name 1" class="form-control">
      </div>

我的控制器代码:

public function profile( $id = null )
{
    $company = $this->Companies->get( $id );

    if ($this->request->is(['post','put']))
    {
        $post = $this->Companies->patchEntity($post, $this->request->data);

        // $post->modified = date("Y-m-d H:i:s");

        if( $this->Companies->save($post) )
        {
        }
    }
    $this->set('company', $company);
}

1 个答案:

答案 0 :(得分:0)

CakePHP不是魔术

  

根据时间线

,我现在无法提供表单助手

最简单的最快方式来做你要求的就是使用帮助者。

  

我想知道是否有任何默认方式来设置表单&#34; context&#34;何时不使用表格助手

没有

要实现这一点,需要框架从模板中解析静态html,找出哪些位应该是动态的,应用一些魔术/假设,然后转储html。 CakePHP不能以这种方式工作。

使用助手

使用适当的辅助方法,而不是静态html。例如FormHelper::text

<div class="form-group panel">
    <h6 for="pt-name">Former Name1</h6>
    <?= $this->Form->text('former_name1') ?>
</div>

这将生成如下内容:

<div class="form-group panel">
    <h6 for="pt-name">Former Name1</h6>
    <input name="former_name1" value="default" type="text">
</div>