簡體   English   中英

如何在Yii中建立以逗號分隔的多個ID的關系

[英]How to build relations to Multiple IDs separated by comma in Yii

我正在創建一個表格。 表單的Certian字段使用復選框,並且可能返回多個選擇,我必須將所有這些ID存儲到由逗號或分號分隔的單個字段中。

現在我要尋找的是如何在Yii Framework中與該記錄建立關系。 通常我們使用

'groupName' => array(self::BELONGS_TO, 'Lookup', 'group'),
'p_cpu' => array(self::BELONGS_TO, 'Product', 'cpu'),

但是我將如何以以下方式進行

'p_additionalSoftwares' => array(self::BELONGS_TO, 'Product', 'additionalSoftwares'),

當其他軟件包含類似2,8的內容時

因為這不是真正的帶有外鍵的BELONGS_TO關系,所以不能使用Yii的內置函數。 您可以為此案例基於CBaseActiveRelation或CActiveRelation編寫自定義關系,但是我對此沒有經驗,但這可能是最干凈的解決方案。

另一種選擇是覆蓋屬性的get處理程序,例如*

public function getP_additionalSoftwares(){
  //Use value from database in attributes and split into array with primary keys
  $pks = explode(",",$this->attributes['p_additionalSoftwares']);
  //Query database
  $models = $this->findByPks($pks);
  return $models;
}

您認為:

$model->p_additionalSoftwares

應該返回一個模型數組,例如一個關系。

注意:這可能會影響性能,因為您可能會獲得對數據庫的大量子請求,因為所有記錄都是延遲加載的。

**代碼未經測試*

暫無
暫無

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

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