簡體   English   中英

如何在SilverStripe ORM / Dataobject中定義復合主鍵

[英]How to define composite primary key in SilverStripe ORM/Dataobject

SilverStripe的DataObject為我們提供了以下內容:

ID - 主鍵

但是如何定義復合鍵(由2列或更多列組成的主鍵)? 我搜索了文檔,無法在任何地方找到這些信息。

我不確定主鍵,但您可以設置唯一索引。 它應該給你一個像這里提到的類似結果。

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"'
        )
    );
}

使用此代碼,如果已存在數據庫中包含這些值的記錄,則無法使用MyField = 'test'MyOtherField = 'othertest'創建YourDataObject 它可以創建一個YourDataObject只用MyField測試和MyOtherField為別的東西。

但是,建議您在將其寫入數據庫之前對此進行檢查,因為您在ModelAdmin中會收到用戶不正確的錯誤。

文檔中復制的代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM