1

我有一个控制器 Users_controller 和一个函数 travel()。我有一个用于该函数的视图 travel.ctp。在 travel.ctp 我使用一个元素 profile.ctp 来显示存储在视图/元素/profile.ctp 中的一些内容. 在 travel.ctp 我添加了元素

  <?php echo $this->element("profile");?>

在 profile.ctp elemet 中,我编写如下表单操作

    <?php echo $this->Form->create('User', array('url' => array('action' => 'travel')));?>

我的疑问是

  1. 我如何在 travel() 中获取表单数据?
  2. 如何将该数据保存在另一个表中?
  3. 我怎样才能重用那个元素?因为我为该表单提交编写了一个动作,那么我如何将它重用于另一个动作?
4

1 回答 1

1

在您的控制器中,您必须设置例如一个变量

$this->set('result', 'something');

并在您的 travel.ctp 中将值“某物”传递给您的元素,包括:

element("profile", array('result' => $result));?>

在您的 profile.ctp 中,您可以正常使用此变量,例如:

$result

要将数据保存到另一个表中,您可以更改表单的名称

 <?php echo $this->Form->create('User', array('url' => array('action' => 'travel')));?>

或不设置表单的名称并手动到控制器中加载要保存数据的模型

<?php echo $this->Form->create(null, array('url' => array('action' => 'travel')));?>

如果您想重用元素但更改操作,您可以传递一个设置操作的值,例如:

在你的 travel.ctp

<?php echo $this->element("profile", array('result' => $result, 'action' => 'youraction'));?>

在你的 profile.ctp

<?php echo $this->Form->create('User', array('url' => array('action' => $action)));?>
于 2013-05-16T10:45:28.897 回答