问题标签 [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 投票
2 回答
466 浏览

phpunit - 找不到 Silverstripe 4 SapphireTest 类

我已经从 SilverStripe 3 升级到 4,现在我的 phpUnit 测试无法运行,因为它们找不到我的任何自定义类。

自动加载器或其他东西必须缺少某些东西。

我有一个像这样的简单测试

运行时我得到: $ php vendor/phpunit/phpunit/phpunit mysite/tests/EntityTest.php

致命错误:找不到类“SilverStripe\Dev\SapphireTest”

0 投票
1 回答
442 浏览

php - SilverStripe 4 - DataExtension 上的 has_many 关系

在 SS 4.0.3 上,我只是想在SiteConfig扩展和DataObject. DataExtension有一个has_many指向 中的通讯员has_one的关系DataObject。在/dev/build?flush=allCMS 上抛出以下异常,我不明白为什么。

准确地说;DataObject作为CassaDataExtension作为ConfigurazioneExtension

这是消息:

[紧急] 未捕获的异常:在“Cassa”类上找不到 has_one,从“SilverStripe\SiteConfig\SiteConfig”到“Cassa”的 has_many 关系需要“Cassa”上的 has_one

这是代码:

卡萨

配置扩展

DataObjects 和 DataExtensions 之间是否禁止某些类型的关系?

在此先感谢您的帮助。

0 投票
1 回答
127 浏览

php - SilverStripe many_many_extrafields 配置错误

我正在一个项目中many_many_extraFields建立一些 DataObjects 之间的关系,遵循官方文档

使用以下代码:

framweork 抛出此异常:

[警告] 在 null 上调用成员函数 setFields()

引用此行:

如您所见,我在它之前添加了规范实例化 - 例如开发人员指南建议。

我试图找出原因是什么,但我确定缺少某些东西。

提前致谢。

0 投票
1 回答
183 浏览

silverstripe - 安装 silverstripe 没有显示样式

我正在尝试安装 silverstripe,下载 zip 文件,解压缩并将所有文件复制到 MAMP 文件夹的根目录中。当我转到 url 中的根位置时,进入 install.php,但没有显示任何样式。但在控制台中没有问题。

这样,我什至无法安装 silverstripe,因为它什么也没做。

任何帮助,将不胜感激。

0 投票
1 回答
161 浏览

php - SilverStripe - DataObject onBeforeWrite 上的未定义索引

按照官方 SS 扩展指南DataObject我遇到了这个异常:

PHP 通知:未定义索引:PrezzoIva

DataObject项目全景:在主write()执行之前,必须计算一个值并与其他属性成对保存。这是情况(在 SS 4.0.3 上):

onBeforeWrite方法:

上面调用的方法:

要么更改if (!$this->record['PrezzoIva'])if (!isset($this->record['PrezzoIva']))异常,要么仍然抛出。

提前感谢您的支持。

更新

似乎通过将控件嵌套在里面onBeforeWrite显然可以解决问题,但这不符合业务逻辑。在第一次尝试时onBeforeWrite,系统看不到任何内容$this->record['PrezzoIva']然后失败。另一方面,如果控件与 嵌套elseif,以防其他记录丢失,这些将被忽略。目前我仍在努力。write()同时,我注意到所涉及的字段在调用时也没有被初始化。这只发生在$this->PrezzoIva. 其他字段被正确保存。这里有一个例子:

DB画面

0 投票
2 回答
541 浏览

php - SIlverStripe - 没有数据写入 onBeforeWrite

此问题相关,DataObject扩展的 withonBeforeWrite方法不会在 DB 上写入特定的属性值。详细地:

数据对象:

onBeforeWrite方法:

上面调用的方法:

没有抛出异常。基本上,无论是第一次保存还是write()其他保存,PrezzoIva都没有更新(它保留默认值)。DataObject经过几次编辑,这里是我的数据库的摘录:

DB画面

目前,我不知道是什么原因造成的。任何形式的帮助将不胜感激。

提前谢谢大家。

0 投票
0 回答
353 浏览

php - SilverStripe 显示 has_one 关系值

我陷入了一个误解/逻辑问题。

我一直在 SilverStripe 工作,需要显示has_many和之间的many_many关系数据DatObjects,通常通过诸如此类GridField的字段类型进行管理。但是现在,我陷入了一种情况,即我应该显示来自DataObject另一个特定内部的一些数据。它们通过has_one / belongs_to关系相关。在我的示例中,我在 SS 4.0.3 上运行了这两个对象:

对象 1 - 订阅者:

对象 2 - 卡片:

我会从Card内部显示数据Subscriber。通常,我的逻辑应该是这样的:通过使用点符号来声明相关Card字段(以及声明$summary_fields, ie):

订阅者 - getCMSFields():

所以,此时我应该看到卡号加载到了TextField,但是数据丢失了。如果我转换$this->Card()->Number字段中的源参数仍然为空。

我错过了什么?

奖金问题

在这种情况下,我会反转逻辑,除此之外,在Subscriber里面显示一个字段Card,我认为这种方法是不可能的,对吧?如果我是对的,我应该转换belongs_tohas_manyinCard以实现这一目标,对吗?

谢谢你的支持。

0 投票
2 回答
265 浏览

php - SilverStripe 添加自定义安全组

在 SS 4.0.3 上遵循本指南官方文档,我成功创建了自定义权限角色。

现在,我将创建一个自定义组并将默认管理员添加到其中,作为默认执行的操作,以便在删除数据库时维护这些用户/组/角色设置。我用谷歌搜索了很多次,但我没有找到任何详细的教程来实现这一点(使用Group类、实现这个逻辑的正确位置等等)。

谁能给我指路?

提前致谢。

0 投票
1 回答
62 浏览

php - Where are the templates for the default pages in Silverstripe 4?

Where are the templates for the default pages (Home, About Us, Contact Us) in Silverstripe 4 when freshly installed? The documentation does not say where.

0 投票
3 回答
189 浏览

silverstripe - Silverstripe 不使用 HomePage.ss 作为 Chrome?

嗨,我学习了 Silverstripe 课程https://www.silverstripe.org/learn/lessons/v4/working-with-multiple-templates-1,甚至尝试从存储库下载代码,但是当我尝试创建模板/主页时.ss 作为 chrome Silverstripe 仍然使用 Page.ss。显然课程说“它首先在主模板/目录中查找此页面的 chrome。如果它在那里找到 HomePage.ss,它将选择它作为您的 chrome。” 什么不见​​了?