【发布时间】:2019-08-05 21:05:35
【问题描述】:
所以我犯了一个错误,不小心定义了两个导致同一个数据库表的类
<?php
namespace Sca {
use SilverStripe\ORM\DataObject;
class Gallery extends DataObject {
private static $table_name = 'Gallery';
// ...
}
}
还有其他类
<?php
namespace Sca {
use SilverStripe\ORM\DataObject;
class GalleryHolder extends DataObject {
private static $table_name = 'Gallery';
// ...
}
}
然后我运行 /dev/build 并且站点崩溃了。现在我唯一看到的是 /var/log/apache/.. 下 apache 日志上的 apache 错误。
[2019-08-05 23:36:32] 错误日志。错误:未捕获的异常 LogicException:“多个类(“Sca\GalleryHolder”、“Sca\Gallery”) 映射到同一个表:“画廊””在 /var/www/demo/sc2/vendor/silverstripe/framework/src/ORM/DataObjectSchema.php 第 299 行 {"exception":"[object] (LogicException(code: 0): Multiple 类 (\"Sca\GalleryHolder\", \"Sca\Gallery\") 映射到相同的 表:“画廊”在 /var/www/demo/sc2/vendor/silverstripe/framework/src/ORM/DataObjectSchema.php:299)"} []
我转储了数据库并 $ grep'ed dirs 没有成功找到定义 GalleryHolder 的位置,该位置导致为该类创建 Gallery 表。没结果。我还删除了 GalleryHolder 的类文件并再次运行 /dev/build 但从 Web 访问时仍然会出现该错误和“服务器错误”屏幕。 有什么建议可以清除缓存或架构以解决冲突吗?
【问题讨论】:
标签: silverstripe silverstripe-4