作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
SilverStripe 的 DataObject 为我们提供了以下内容:
ID - 主键
但是如何定义组合键(由2个或更多列组成的主键)呢?我已经搜索了文档,但在任何地方都找不到此信息。
最佳答案
我不确定主键,但您可以设置唯一索引。它应该给你一个类似的结果,如前所述 here .
class YourDataObject extends DataObject
{
private static $db = [
'MyField' => 'Varchar',
'MyOtherField' => 'Varchar'
];
private static $indexes = array(
'MyIndexName' => array(
'type' => 'unique', // changed this to unique
'value' => '"MyField","MyOtherField"'
)
);
}
使用此代码,如果一个数据库中已经有包含这两个值的记录。可以创建一个 YourDataObject
,仅将 MyField
作为测试,将 MyOtherField
作为其他内容。
但是,建议您在将其写入数据库之前进行检查,因为您会在 ModelAdmin 中遇到用户不友好的错误。
从 documentation 复制的代码
关于php - 如何在 SilverStripe ORM/Dataobject 中定义复合主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325001/
我是一名优秀的程序员,十分优秀!