问题标签 [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.
phpunit - 找不到 Silverstripe 4 SapphireTest 类
我已经从 SilverStripe 3 升级到 4,现在我的 phpUnit 测试无法运行,因为它们找不到我的任何自定义类。
自动加载器或其他东西必须缺少某些东西。
我有一个像这样的简单测试
运行时我得到: $ php vendor/phpunit/phpunit/phpunit mysite/tests/EntityTest.php
致命错误:找不到类“SilverStripe\Dev\SapphireTest”
php - SilverStripe 4 - DataExtension 上的 has_many 关系
在 SS 4.0.3 上,我只是想在SiteConfig
扩展和DataObject
. DataExtension
有一个has_many
指向 中的通讯员has_one
的关系DataObject
。在/dev/build?flush=all
CMS 上抛出以下异常,我不明白为什么。
准确地说;DataObject
作为Cassa
和DataExtension
作为ConfigurazioneExtension
:
这是消息:
[紧急] 未捕获的异常:在“Cassa”类上找不到 has_one,从“SilverStripe\SiteConfig\SiteConfig”到“Cassa”的 has_many 关系需要“Cassa”上的 has_one
这是代码:
卡萨
配置扩展
DataObjects 和 DataExtensions 之间是否禁止某些类型的关系?
在此先感谢您的帮助。
php - SilverStripe many_many_extrafields 配置错误
我正在一个项目中many_many_extraFields
建立一些 DataObjects 之间的关系,遵循官方文档。
使用以下代码:
framweork 抛出此异常:
[警告] 在 null 上调用成员函数 setFields()
引用此行:
如您所见,我在它之前添加了规范实例化 - 例如开发人员指南建议。
我试图找出原因是什么,但我确定缺少某些东西。
提前致谢。
silverstripe - 安装 silverstripe 没有显示样式
我正在尝试安装 silverstripe,下载 zip 文件,解压缩并将所有文件复制到 MAMP 文件夹的根目录中。当我转到 url 中的根位置时,进入 install.php,但没有显示任何样式。但在控制台中没有问题。
这样,我什至无法安装 silverstripe,因为它什么也没做。
任何帮助,将不胜感激。
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
. 其他字段被正确保存。这里有一个例子:
php - SIlverStripe - 没有数据写入 onBeforeWrite
与此问题相关,DataObject
扩展的 withonBeforeWrite
方法不会在 DB 上写入特定的属性值。详细地:
数据对象:
onBeforeWrite
方法:
上面调用的方法:
没有抛出异常。基本上,无论是第一次保存还是write()
其他保存,PrezzoIva
都没有更新(它保留默认值)。DataObject
经过几次编辑,这里是我的数据库的摘录:
目前,我不知道是什么原因造成的。任何形式的帮助将不胜感激。
提前谢谢大家。
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_to
为has_many
inCard
以实现这一目标,对吗?
谢谢你的支持。
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.
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。” 什么不见了?