duanhuantong8278
2015-07-17 12:50
浏览 117
已采纳

如何访问yii2关系映射表字段

I have three table that names is 'agency' , 'property' and 'property_agency_map'

agency table :

--------------------------
| id => primary key ...  |
| name => string ...     |
| and som more fields    |
--------------------------

property table :

--------------------------
| id => primary key ...  |
| state => string ...    |
| adress => string ...   |
| and som more fields    |
--------------------------

property_agency_map table :

------------------------------
| id => primary key ...      |
| agency_id => string ...    |
| property_id => string ...  |
| status =>  intiger ...     |
| favorite =>  intiger ...   |
------------------------------

the property_agency_map table connect agency table to property table.

agency model :

 public function getProperties(){
    return $this->hasMany(Property::className(),['id'=>'property_id'])
        ->viaTable('"{{%property_agency_map}}"',['agency_id'=>'id']);
}

Now My question is How to access 'favorite' and 'status' field in property_agency_map ??

图片转代码服务由CSDN问答提供 功能建议

我有三个名称为'agency','property'和'property_agency_map'的表

代理商表:

  ---------------------  ----- 
 |  id => 主键... | 
 |  name =>  string ... | 
 | 和更多字段| 
 -------------------------- 
   
 
 

属性表:

  --------------------------  
 |  id => 主键... | 
 |  state =>  string ... | 
 |  adress =>  string ... | 
 | 和更多字段| 
 -------------------------- 
   
 
 

property_agency_map 表格:

  --------------------------  ---- \ N |  id => 主键... | 
 |  agency_id =>  string ... | 
 |  property_id =>  string ... | 
 |  status =>  intiger ... | 
 |  favorite =>  intiger ... | 
 ------------------------------ 
   
 \  n 

property_agency_map 表将代理表连接到属性表。

代理机构型号:< / p>

  public function getProperties(){
 return $ this-&gt; hasMany(Property :: className(),['id'=&gt;'property_id'])
  - &GT; viaTable( ' “{{%property_agency_map}}”',[ 'agency_id'=&GT;的 'id']); \ N} 
   
 
 

现在 我的问题是如何访问 property_agency_map 中的“收藏”和“状态”字段?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dsvtnz6350 2015-07-17 13:51
    已采纳

    You should create new method to get property_agency_map items for agency:

    namespace app\models;
    
    use yii\db\ActiveRecord;
    
    class PropertyAgencyMap extends ActiveRecord
    {
        /**
         * @return string the name of the table associated with this ActiveRecord class.
         */
        public static function tableName()
        {
            return 'property_agency_map';
        }
    }
    
    class Agency extends ActiveRecord
    {
        /**
         * @return string the name of the table associated with this ActiveRecord class.
         */
        public static function tableName()
        {
            return 'agency';
        }
    
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getPropertyAgency()
        {
            return $this->hasMany(PropertyAgencyMap::className(), ['agency_id' => 'id']);
        }
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题