关于Yii的积垢发生器

关于Yii的积垢发生器,yii,crud,scaffolding,Yii,Crud,Scaffolding,我开始使用Yii框架和gii工具为几个表创建crud功能 问题是我通常需要修改生成的代码。例如,我注意到所有表单都只使用文本输入。例如,对于外键,我需要显示一个select,用户可以在其中选择另一个表的寄存器,而不必插入主键 我通过修改相关视图_view.php、_form.php、…,实现了这一点。。。。当需要修改数据库并重新生成代码时,我的问题就开始了。在这种情况下,我必须一个表一个表地更新涉及的文件,保留我以前的更改 是否存在一种更好地处理这种情况的方法?您不必这样做。例如,您可以使用外键

我开始使用Yii框架和gii工具为几个表创建crud功能

问题是我通常需要修改生成的代码。例如,我注意到所有表单都只使用文本输入。例如,对于外键,我需要显示一个select,用户可以在其中选择另一个表的寄存器,而不必插入主键

我通过修改相关视图_view.php、_form.php、…,实现了这一点。。。。当需要修改数据库并重新生成代码时,我的问题就开始了。在这种情况下,我必须一个表一个表地更新涉及的文件,保留我以前的更改


是否存在一种更好地处理这种情况的方法?

您不必这样做。例如,您可以使用外键生成select

<?php echo CHtml::dropDownList('ModelName[language_id]',$model->language_id,CHtml::listData(Language::model()->findAll(), 'id', 'name'), array('prompt'=>'Select Language')); ?>
第一个参数是select的名称,第二个参数是值(如果正在更新),将选择该值,第三个参数是数据,第四个参数是带有html选项的数组。更多关于和的信息


在这种情况下,language_id是外键,在language表中有一个id和一个name字段。这将生成一个包含所有可用语言的选择,如:1=>英语、2=>德语等。

您不必这样做。例如,您可以使用外键生成select

<?php echo CHtml::dropDownList('ModelName[language_id]',$model->language_id,CHtml::listData(Language::model()->findAll(), 'id', 'name'), array('prompt'=>'Select Language')); ?>
第一个参数是select的名称,第二个参数是值(如果正在更新),将选择该值,第三个参数是数据,第四个参数是带有html选项的数组。更多关于和的信息


在这种情况下,language_id是外键,在language表中有一个id和一个name字段。这将生成一个包含所有可用语言的select,如:1=>英语、2=>德语等。

如果您需要几次crud表单生成功能,使用“将外键显示为下拉列表”选项,您可以创建自己的gii模板来完成此操作。了解如何操作。

如果您需要几次crud表单生成的功能,可以使用“将外键显示为下拉菜单”选项,您可以创建自己的gii模板来完成此操作。要知道如何做。

对于此功能,您需要开发gii工具,该工具将继承现有gii工具的功能,这意味着在创建CRUD时对现有类进行一些修改。这是您的特定需求,gii工具只提供适合所有用户的通用功能

对于此功能,您需要开发gii工具,该工具将继承现有gii工具的功能,这意味着在创建CRUD时对现有类进行一些修改。这是您的特定需求,gii工具只提供适合所有用户的通用功能

将为关系生成下拉列表

如果使用Gii模型生成,GiiX也会生成更好的模型。

会为关系生成下拉列表


如果您使用Gii模型生成,GiiX也会生成更好的模型。

谢谢您的回答。我正在修改生成代码的视图。但是如果我必须重新生成crud代码,这些更改将被覆盖不?不一定。您可以选择重新生成哪些文件,这样可以避免覆盖已修改的文件。如果检测到修改,我相信甚至会有颜色变化。是的,你是对的,但是如果我向表中添加了更多列,我将被迫重写受影响的文件。如果你不能手动执行更改,那么是的,你将被迫重写受影响的文件。谢谢你的回答。我正在修改生成代码的视图。但是如果我必须重新生成crud代码,这些更改将被覆盖不?不一定。您可以选择重新生成哪些文件,这样可以避免覆盖已修改的文件。我相信如果检测到修改,甚至会有颜色变化。是的,你是对的,但如果我向表中添加更多列,我将被迫重写受影响的文件如果你无法手动实现更改,那么是的,您必须向所有人重写受影响的文件.Thx。我将查看有关扩展其功能的gii指南。这已在giix扩展中完成。请看我的答案。Thx给大家看一看关于扩展其功能的gii指南这已经在giix扩展中完成了。看看我的答案。