我只是在学习 SilverStripe,实际上我对 silverstripe 网站上的课程有疑问。
我有这堂课:
namespace SilverStripe\Lessons;
use Page;
class ArticlePage extends Page
{
private static $can_be_root = false;
private static $db = [
'Date' => 'Date',
'Teaser' => 'Text',
'Author' => 'Varchar(255)',
];
// public function getCMSFields(){
// $fields = parent::getCMSFields();
// $fields = addFieldToTab();
// return $fields;
// }
}
现在,当我到 /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 呢?有人可以帮我解决这个问题吗?戴夫。