taitava/silverstripe-dataview

在开发/构建过程中自动创建MySQL视图。

安装: 106

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

公开问题: 0

类型:silverstripe-module

0.2.0 2020-01-11 23:30 UTC

This package is auto-updated.

Last update: 2024-09-12 09:36:57 UTC


README

此模块允许您在 /dev/build 过程中自动构建和更新MySQL视图(如果您不希望在 /dev/build 过程中这样做,也可以通过单独的 BuildTask)。

示例

class MyView extends DataView
{
	public static function getViewStatement()
        {
        	//Borrow SQL from a DataList:
        	return MyDataObject::get()->filter('SoftDeleted', false);
        	
        	//Custom SQL:
        	return new SQLSelect(['Book.Title','Author.Name'],'Book')->addLeftJoin('Author','Book.AuthorID = Author.ID');
        	
        	//The quick and dirty way: hard coded SQL:
        	return 'SELECT quantity, price, quantity*price AS amount FROM Product';
        }
}

现在只需在浏览器中运行 /dev/build 或者在终端中运行 php framework/cli-script.php dev/tasks/UpdateDataViewsTask。现在您的新视图已定义在数据库中。请注意,您确实需要在数据库中具有 CREATE VIEW 和 DROP VIEW 权限!DROP VIEW 是更新现有视图结构所必需的。

遗憾的是,此模块目前不提供从视图中读取数据的方法,但我计划进行一些研究,以确定实现这一目标的最有意义的方式。

路线图

对于版本 1.0,我希望此模块具有以下功能

  • 数据列表样式从视图中过滤和迭代记录
  • 数据对象样式从记录中读取属性(没有写入能力。写入应通过常规数据对象或自定义SQL命令完成)
  • 支持SilverStripe 4.x
  • 更好的文档
  • 可能还有更多...

贡献

如果您有任何关于如何改进此模块或任何问题的想法,我将很高兴听到它们! :) 请提出问题或创建一个拉取请求——您喜欢哪个就哪个。