问题标签 [silverstripe-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

gd - 如何将 GD 创建的图像保存到 Silverstripe 4 中的对象

我正在 Silverstripe 4 中开展一个项目。在页面保存/发布时,我想创建一个“MetaImage”,它由与页面关联的随机图块图像组成。

MetaImage 是由 GD 创建的——然后我试图将它保存到 ORM 中。这是一些示例代码:

我得到的只是CMS的“文件”部分中的一个红色框,带有“找不到文件”。

如何将创建的 GD 图像与$metaObjectImage

如果“metaimage-6.jpeg”已经存在,我怎样才能让它被文件的新副本替换?

0 投票
2 回答
159 浏览

silverstripe - 部署 Silverstripe 站点时处理数据库

我有一个使用 Silverstripe 构建的小型测试项目,我在本地开发机器上完成了该项目,并希望将其部署到服务器上。我的问题是我应该如何处理我的开发计算机上的数据库。

转储数据库并将其导入服务器是否有效?或者 Silverstripe 是否将可能导致问题的信息存储在数据库中?当我之前在 Wordpress 上尝试过这个时,它很复杂,因为它存储了完整的 url,比如“localhost/etc”。

0 投票
1 回答
778 浏览

php - Silverstripe table_name 未设置类

我只是在学习 SilverStripe,实际上我对 silverstripe 网站上的课程有疑问。

我有这堂课:

现在,当我到 /dev/build 时,我会在构建页面上收到以下反馈: 在此处输入图像描述

所以我接下来要做的实际上是注释掉 $db 数组的声明。然后我从开发/构建中得到了这个反馈:

在此处输入图像描述

所以有几件事我不确定。dev/build 的第一个输出中的红色注释表明您应该为所有命名空间模型定义一个 table_name。它确实没有说明我有一个未定义的 table_name。但是它下面的下一个注释说 table_name 没有为类 SilverStripe\Lessons\ArticlePage 设置。那么在这些消息的上下文中定义一个 table_name 和“设置”一个 table_name 是一样的吗?

此外,第二个输出表明为 SilverStripe\Lessons\ArticlePage 定义了一个 table_name。我相信,每个 table_name 都附加了“2”的事实是我在开始这篇文章之前进行的实验。即,一旦我看到这种行为,我就重复实验以尝试重现该行为,因此创建和删除了更多表,因此必须增加它们的名称。那么为什么没有设置 ArticlePage table_name 呢?有人可以帮我解决这个问题吗?戴夫。

0 投票
1 回答
106 浏览

php - 使用备用 ID 的 silverstripe-graphql 突变

我正在尝试编写一个 GraphQL 突变来进行更新。在此应用程序中,名为 QuickPossession 的 DataObject 包含对应于第 3 方数据库的第二个 ID。我需要根据第二个 ID 更新 QuickPossessions。这是模型:

而在我的mysite.yml

我能够成功运行以下突变:

使用这些变量:

正确地给出了这个输出:

但我不知道如何使用 SecondID 作为唯一标识符来做同样的事情。我尝试了以下方法:

使用这些变量:

这会产生此错误:

我的问题是:突变只适用于主 ID 吗?是否可以使用替代的唯一标识符?

还是我错过了其他东西?也许这是使用脚手架方法为 GraphQL 查询设置 DataObjects 的限制?非常感谢 :)

我一直在参考silverstripe-graphqlgraphql.org文档。

0 投票
1 回答
47 浏览

silverstripe - SS4 中的 Form::buttonClicked 等价于什么?

在 SilverStripe 3 中,如果我想找出在表单上单击了哪个按钮(在提交之后),我会调用:

buttonClicked似乎已在 SilverStripe 4 中删除,有人知道您将如何做同样的事情吗?

0 投票
0 回答
282 浏览

php - 如何在 Silverstripe 4 中的页面上添加/保存/发布图像

Silverstripe 4 项目有一个扩展页面,它会在保存时自动生成一个“MetaImage”,然后应该将其附加到页面上。下面的示例代码:

然而,图像被连接到“舞台”版本,而不是“现场”版本。MetaImageID 更新在ExamplePage数据库中的表中,而不是ExamplePage_Live表中。

我猜问题是$this->MetaImageID = $metaObjectImage->ID;没有正确设置关系,但我不确定如何更改它,因此在发布 ExamplePage 时它会保存到“实时”。

0 投票
2 回答
395 浏览

silverstripe-4 - 如何扩展 Silverstripe 博客模块?

我正在为一个项目寻找一个使用 Siverstripe 的博客模块。该博客具有我想要的大部分功能,但由于该网站主要以书籍为重点,因此我想在 blogpost 表中添加一些字段来保存书籍数据(标题、作者、评级等。看起来这应该相对简单但我似乎无法让它工作。我创建了以下扩展 PHP 文件:

并将以下内容添加到 mysite.yml 文件中:

我还尝试将上述内容添加到博客模块本身的 config.yml 文件中。但是,无论我尝试什么,当我重建系统时,它都会为 BookDataExtension 创建表,而不是将字段添加到 BlogPost 表中。我究竟做错了什么?

0 投票
1 回答
98 浏览

silverstripe - Silverstripe v4 MVC 目录?

我想知道为什么 SS4 主目录中没有“模型/视图/控制器”目录?似乎一切都应该进入“mysite/code”..如何实现 MVC 风格?

0 投票
1 回答
870 浏览

php - 如何在 silverstripe 数据扩展中自动发布图像

我试图将上传字段添加到自定义 DataExtension 并让 Image 字段正常工作。但是,我上传的图像仍处于概念模式,我必须转到“文件”选项卡才能发布它。我尝试使用 Silverstripe 文档中提供的代码,但这似乎只适用于常规页面。我发现了一个类似于我的问题:如何在 Silverstripe 模型管理中自动发布上传到数据对象的文件, 但这似乎只适用于数据对象。

这是我当前的代码:

有谁知道解决方案?

0 投票
1 回答
534 浏览

silverstripe-4 - Silverstripe 4 和命名空间——模板去哪儿了?

我正在将 3.x 站点升级到 4.x。一切看起来都很好,今天早上我可以在升级核心框架和其他模块后真正加载我的网站。

我刚刚完成了此处的升级过程,并完成了在 /mysite.xml 中命名所有自定义文件的部分。除了 Page.php 和 PageController.php 之外,我已经完成了。

我遇到的问题是自从执行此命名空间以来,没有页面可以在系统中找到任何模板。所有页面都使用 /framework/templates/SilverStripe/Control/Controller.ss(由源代码中的标记确认)。

升级文档中有一些关于模板的非常简短的讨论,但很少。而且我花了一天的时间试图找到有关文档不完整声明可能意味着什么的教程:

核心模板位置已移动 - 如果您包含或覆盖这些(例如 FormField 模板),请调整到新路径。

(它不完整,因为它没有继续说明“新路径”实际上是什么。)

如果你有一个文件 /mysite/code/Page.php (没有命名空间),你会期望 /mysite/template/Page.ss 中的模板加载吗?在我的情况下,它没有。如果您有另一个名为 HomePage 的页面扩展了 Page.php,但有命名空间 Vendor\MySection,您希望在文件系统中的哪里找到模板?

编辑:不起作用的示例:

  • Page.php - 没有命名空间
  • HomePage.php - 命名空间供应商\MyProject

我在 /themes/[themename]/templates 目录和 /mysite/templates 目录中都尝试了以下结构:

在任何一种情况下,都不会选择 Page.ss 模板或 HomePage.ss 模板。该页面由 Controller.ss 呈现。

我让它工作的唯一方法是从所有页面中删除命名空间并遵循通常在 SS3 中找到的结构。

编辑 2:只是我的 config.yml 的内容