我是CakePHP的新手。我需要制作一个带有单选按钮的表单,最后一个是"其他"用户可以在文本框中输入答案。
FormHelper有没有办法做到内置的这个?
我要做的一种方法是创建一个广播列表和一个文本字段。当"其他"选中Javascript将显示文本字段。为此,除了数据库中的字段之外,我不了解如何使用任何其他变量。如何从可以从视图访问的模型创建变量,并返回值以进行处理?
对于我的模型:
class User extends AppModel {
/**
* Display field
*
* @var string
*/
public $displayField = 'title';
var $sourceOther = ' ';
var $passwordRepeat = ' ';
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = sha1(
$this->data[$this->alias]['password']);
}
// $this->data[$this->alias]['created']= CakeTime::gmt();
// $this->data[$this->alias]['updated']= CakeTime::gmt();
$this->data[$this->alias]['username']= $this->data[$this->alias]['email'];
return true;
在视图中我有
echo $this->Form->input('mobilePhone',array(
'label'=>'Mobile or fixed phone with no spaces'));
echo $this->Form->input('alternatePhone');
echo $this->Form->input('leadSource', array(
'options'=>array('Google'=>'Google','OnlineAd'=>'Online Ad',
'Printed Media'=>'Printed Media','LetterDrop'=>'Letter Drop',
'Other'=>'Other (specify text)'),
'empty'=>'(choose one)'));
echo $this->Form->input($this->sourceOther);
...但它不像sourceOther,模型中的变量。如何将视图(文本框)中的数据导入用户模型,以便之前可以使用它做什么?
感谢。
感谢。
答案 0 :(得分:0)
阅读" Cake PHP Application Development"后将其排序。它适用于Cake 2.x和1.2(在本书中使用)。
在你看来:
echo $this->Form->input('sourceOther');
然后在模型中,您可以使用以下命令访问变量:
$this->data['User']['sourceOther'];
例如,用它来保存"其他" beforesave中的文本字段:
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = sha1(
$this->data[$this->alias]['password']);
}
$this->data[$this->alias]['username'] = $this->data[$this->alias]['email'];
$this->data[$this->alias]['activation'] = md5(uniqid(rand(), true));
if ($this->data[$this->alias]['leadSource'] == 'Other') {
$this->data[$this->alias]['leadSource'] =
$this->data['User']['sourceOther'];
}
return true;
}