我想在创建列之前检查一个数据库列是否存在于一个表中。我知道这可以很容易地用纯sql来完成,但是我想尝试用Yii的方式用db模式函数来完成。
下面的if语句不起作用,因为没有getColumn函数,所以使用db-〉schema,还有什么可以用来检查列($model-〉VARNAME)是否存在?
if(!Yii::app()->db->schema->getColumn($form->TABLE_NAME, $model->VARNAME))
{
if($model->save())
{
Yii::app()->db->schema->addColumn($form->TABLE_NAME, $model->VARNAME, $column_t);
$this->redirect(array('view','field'=>$model->FIELD_ID));
}
}
else
{
$model->addError('VARNAME','Column "'.$model->VARNAME.'" already exists. Please pick a new column name.');
}
4条答案
按热度按时间sqyvllje1#
hrysbysz2#
根据Yii 2.0,它应该可以:
5rgfhyps3#
Yii2中的代码:
如果列不存在,则返回null,否则返回包含有关现有列信息对象
ibrsph3r4#
您将需要使用**
$model->hasAttribute()
**:例如: