taitava / silverstripe-dataview
在开发/构建过程中自动创建MySQL视图。
0.2.0
2020-01-11 23:30 UTC
Requires
- silverstripe/cms: ~3.1
- silverstripe/framework: ~3.1
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
- 更好的文档
- 可能还有更多...
贡献
如果您有任何关于如何改进此模块或任何问题的想法,我将很高兴听到它们! :) 请提出问题或创建一个拉取请求——您喜欢哪个就哪个。