簡體   English   中英

Silverstripe 3.1-無法創建新的many_many關系

[英]Silverstripe 3.1 - Can't create a new many_many relation

在擴展CsvBulkUploader以滿足我的需求的同時,我解決了這個問題,即Silverstripe不允許我為many_many關系創建新條目。

我的數據對象是ShopItems並且有一個名為Visuals的many_many關系。 所以在我的MySQL數據庫中,我得到ShopItems_Visuals

現在,我想使用以下代碼為此創建一個新條目,並且我認為這是我犯錯的地方。

...    
    $visual = ShopItem_Visuals::create();
    $visual->ImageID = $file->ID;
    $visual->ShopItemID = $obj->ID;
    $visual->write();
...

將其添加到我的函數后,點擊導入按鈕后,我收到Class 'ShopItem_Visuals' not found

那是因為數據庫Table是通過ShopItem中的many_many關系創建的,本身沒有ClassName?

有人可以告訴我如何為此關系創建一個新條目嗎?

先感謝您。

我認為映射表本身沒有一個類。
通過add添加相關對象時,應自動創建其中的條目。

$visual = new Visual();
...
$visual->write();

$ShoptItem->Visuals()->add($visual);
$ShoptItem->write();

如果多對多關系名稱是Visuals ,則調用->Visuals()應該返回ManyManyList的實例,您可以在該實例上調用添加,刪除等。

看到http://api.silverstripe.org/3.0/class-ManyManyList.html

暫無
暫無

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

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