在设计表的时候为表的每个字段都有添加COMMENT,想在生成的model的attributeLabels中自动用这个COMMENT来作为label是否能实现?如果能这样还是很方便的
在设计表的时候为表的每个字段都有添加COMMENT,想在生成的model的attributeLabels中自动用这个COMMENT来作为label是否能实现?如果能这样还是很方便的
嗯,这个建议挺好的。省点事情。呵呵
关键是怎么读取COMMENT的内容呢?SQL语句能实现吗?
comment只是一个string,怎么匹配那么多lable。难道用 系列化,或者是分隔符?
如果你能解决上面的思路,则在model command里面应该可以做的。
但我觉得还不如 修改model这样现实。
我感觉model,缺少一个 modelName的名字函数。而且model command支持这个参数的传递,就更漂亮了。
这样 “className admin”的名字,
就可以用 “modelName 管理” 来替换了。
每个表字段都有comment,支持楼主
这个希望qiang考虑下是否在ColumnSchema里面实现一下,在SHOW CREATE TABLE 里面有comment信息或者SELECT COLUMN_NAME, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name’也可以获取到。
目前重写gii的ModelCode中的generateLabels可以达到我的目的
public function generateLabels($table)
{
$labels=array();
$sql ="SELECT COLUMN_NAME, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table->name'";
$res = Yii::app()->getDb()->createCommand($sql)->query();
foreach ($res as $column){
if (!empty($column['COLUMN_COMMENT']))
$labels[$column['COLUMN_NAME']]= $column['COLUMN_COMMENT'];
else
$labels[$column['COLUMN_NAME']]= $column['COLUMN_NAME'];
}
return $labels;
}
直接生成
public function attributeLabels()
{
return array(
'id' => 'id',
'title' => '标题',
'image' => '缩略图',
'keyword' => '关键字',
'description' => '页描述',
'catgoryId' => '分类 ID',
'status' => '状态',
'hits' => '点击数',
'createTime' => '日期',
);
}
赞一个,看来又要节约我的时间了。呵呵
还是不要使用comment作为label吧.想想把,它仅仅是个comment。我经常的comment会是一大堆的东东(比如,存入的字符串是什么格式(逗号分隔),pid是逻辑主键还是业务主键,又或者外键与什么表的字段关联。)所以comment的东东还是不要生成label的好,想想只是添加个label而已,任务因该不多。
哎 过于追求完美 不好 。comment不能胜任这么大的任务 而且在在mysql里面 comment是用来充当关系定义的角色。
嗯,如果你的是写那么多注释确实不合适,看来还是小众需求,自己要就重写一下这个方法也蛮简单,甚至自己可以做两套
这个是字段的comment不是表的comment…
我也同意这个观点。。。先自己重载一个用用吧
我用了这个代码,但是好象没有工作,奇怪了~~~~~~