亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Yii1 search() 按多對多關系只返回一個相關模型

Yii1 search() 按多對多關系只返回一個相關模型

PHP
慕容708150 2021-05-31 21:06:41
我有 3 個表: clients,traders和client_trader_relation客戶可以有很多交易者,交易者也可以有很多客戶,所以這是一個“數據透視”表的多對多關系。該關系在客戶端模型中定義如下:$relations = array(        'traders' => array(self::MANY_MANY, 'traders', 'client_trader_relation(client_id, trader_id)'),);現在,當在 CGridView 中顯示所有客戶的列表時,一切正常,但我也希望能夠通過特定交易者搜索客戶(因此,如果交易者之一是 id 10,則返回該客戶)。我在模型的 search() 函數中這樣做了:public function search(){    $criteria=new CDbCriteria;    $criteria->with = 'traders';    $criteria->together = true;    $criteria->compare('traders.id', $this->search_trader);}search_trader是添加到模型和規則中的附加變量,因此它可以用于搜索。雖然這有效,但它成功返回了指定交易者的所有客戶,結果不包含任何其他相關交易者,僅包含我正在搜索的交易者。我可以理解這種行為,因為這是生成的 SQL 的工作方式。我很好奇是否有任何方法可以從此類搜索中返回所有交易者而無需進行任何其他查詢/功能?如果沒有,那么做這種事情的正確方法是什么?至于現在,我只能想到模型中的某些功能,例如getAllTraders()手動查詢traders與當前客戶端相關的所有內容。那行得通,我可以使用這個函數來顯示交易者列表,但它會產生額外的查詢和額外的代碼。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 197 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號