Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii 识别时间戳列_Yii - Fatal编程技术网

Yii 识别时间戳列

Yii 识别时间戳列,yii,Yii,我正在使用giix扩展模型和crud行为。在本文中,我希望处理timestamp类型的列,这些列已经存在于我的模型中,而不是像处理autoincrement字段一样。被忽略且未显示,即。但是,没有属性$column->isTimestamp。我想在某个地方加上这个,但我不知道什么地方是最好的地方。我是把它放在giix的某个地方,还是必须扩展列基类 编辑:对于每个表,我想从每个视图中忽略它们。由于这是一个很大的工作,这是我一直想要的东西,我想自动化它。调整生成器似乎最有意义,但我不确定最好的方法是

我正在使用giix扩展模型和crud行为。在本文中,我希望处理timestamp类型的列,这些列已经存在于我的模型中,而不是像处理autoincrement字段一样。被忽略且未显示,即。但是,没有属性$column->isTimestamp。我想在某个地方加上这个,但我不知道什么地方是最好的地方。我是把它放在giix的某个地方,还是必须扩展列基类


编辑:对于每个表,我想从每个视图中忽略它们。由于这是一个很大的工作,这是我一直想要的东西,我想自动化它。调整生成器似乎最有意义,但我不确定最好的方法是什么。

您需要查询列模式,我没有使用giix,但找到它生成视图的位置,它应该在模型属性或基础表模式中循环

如果它正在架构中循环:

//you can also ask Yii for the table schema with Yii::app()->db->schema->getTable[$tableName];
if ('timestamp' === $tableSchema->columns[$columnName]->dbType)
  continue; //skip this loop iteration
如果它在属性上循环:

$dbType = Yii::app()->db->schema->getTable[$model->tableName]->columns[$modelAttribute]->dbType;
if ('timestamp' === $dbType)
  continue; //skip this loop iteration
过程如下:

扩展您的数据库模式,如果您使用的是MySQL,那么它就是CMYSQLSHEMA。 扩展CMysqlColumnSchema并添加isTimestamp属性。 在CMysqlSchema子类extendcreatecolumn和testfortimestamp中,您将看到Yii在这里进行简单的字符串比较,以设置自己的标志。在此处的CMysqlColumnSchema中设置isTimestamp。 告诉Yii在配置中的组件部分中使用模式驱动程序,如下所示:
我不完全明白你想做什么?您想扩展giix以生成忽略时间戳的代码吗?或者你想在哪里忽略它们?为什么不从视图中删除它们呢?好吧,更重要的是集中比较我对字符串比较感到紧张,只是希望“type”不会突然变为大写或其他形式。但谢谢你的回复。如果你关心这个案子,就打电话给strtolower。我知道,但我想集中这样的检查,而不是在不同的地方编写代码。通常是良好的编码实践。
'db' => array(
  'connectionString' => 'mysql:host=localhost;dbname=database',
  'username' => '',
  'password' => '',
  'driverMap' => array('mysql' => 'CustomMysqlSchema'),
),