[英]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.