Php 在Yii中将列添加到数据库

Php 在Yii中将列添加到数据库,php,database,yii,Php,Database,Yii,嘿,我是Yii框架的新手 我这里的问题是如何向数据库中的表中添加列 我使用了addColumn(),如下所示: Yii:app()->databasename->tablename->addColumn('tablename','newcolumn') 我这里的问题是我必须使用什么来替换app()。我的意思是,app()应该被数据库名、tablename、columnname或其他东西替换吗 谢谢。您应该这样调用函数: $success = Yii::app()->db->creat

嘿,我是Yii框架的新手

我这里的问题是如何向数据库中的表中添加列

我使用了
addColumn()
,如下所示:

Yii:app()->databasename->tablename->addColumn('tablename','newcolumn')

我这里的问题是我必须使用什么来替换
app()
。我的意思是,app()应该被数据库名、tablename、columnname或其他东西替换吗


谢谢。

您应该这样调用函数:

$success = Yii::app()->db->createCommand()
               ->addColumn(string $table, string $column, string $type);
只需替换
addColumn
方法中的三个变量即可


API:

我不知道您在哪里找到了Yii::app()->dbName->tableName->addColumn(),但据我所知,这段代码不起作用

首先,如果你试图写一些让你的表保持最新的方法(例如,通过添加/删除列/表来对数据库进行版本控制),请考虑使用.< /P> 如果您需要查询其他内容,可以使用。例如:

Yii::app()->db->createCommand()->addColumn('user', 'name', 'varchar(64)');

一般做法是什么?数据库迁移还是查询?在我编写的代码中,我将创建此列一次,但在需要时向列添加值。例如,我今天创建了该列,但每2-3天只在该列中添加一次值。如果您和其他开发人员正在处理一个项目,并且您需要一种方法使每个人的数据库保持最新,或者如果您希望以后有一个构建过程(例如使用Phing),那么迁移会更好。但是,如果此列是根据代码中的某些逻辑动态创建的,那么最好使用函数。然而,在后一种情况下,我敦促你重新考虑你的设计;可能有一种更简洁的方法可以做到这一点(即,根据代码中的某些逻辑动态添加列并不是一种好的做法)?为什么不预先设计您的模式?您要解决的初始任务是什么?谢谢