面对在cakephp的脚手架概念的困难

时间:2014-07-08 12:21:31

标签: cakephp

我正准备3页,一个是测验问题,一个是问题页面,另一个是选项。我在测验模型中使用了关系概念我使用了以下代码     

var $hasMany = array('question');

}
?>

在问题模型中我使用了以下代码

<?php
class question extends AppModel {
 var $name='question';

 var $belongsTo = array(
 'quiz'=>array(
'className'=>'quiz',
'foreignKey'=>'quiz_id',
'conditions'=>null,
'fields'=>null
)
);
}
?>

在Quizzes,Questions和Chapters控制器中,我添加了Scaffolding概念     public $ scaffold;

现在我添加了问题页面,添加测验页面并添加选项页面但问题是所有字段都是文本框但是对于某些字段我需要单选按钮和下拉按钮和图像类型。有什么办法可以更改字段类型从默认文本框到我们所需的格式使用脚手架或任何其他方式... 请帮我解决这个问题。                  谢谢。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您就会问如何在脚手架/烘焙中自动更改表单输入类型,如文本框,广播和下拉列表。这个答案适用于当前版本的CakePHP 2.5。

CakePHP determines the form input type based on the database column data type。 因此,对于具有char,varchar或其他字符串的数据库列的字段,CakePHP将在表单中输出一个文本框。如果将列类型更改为布尔值,则会看到一个复选框。

对于单选按钮和下拉菜单,CakePHP还需要知道要在表单上显示的选项列表。因此,您的数据库列必须是外键。一个例子:

让我们假装您的测验中的一个问题是&#34;您来自哪个国家?&#34;。所以你需要一张列出所有国家的表格。然后在问题表中,您将有一个名为country_id的列。请记住使用hasOne / belongsTo关系更新您的问题和国家/地区模型。然后bake / scaffold将输出带有下拉列表的表单输入以选择Country。要将其更改为单选按钮列表(以及更多配置选项),请参阅FormHelper