如何访问 yii2 关系图 table 字段

How to Access yii2 relation map table fields

我有三个 table ,名称是 'agency' 、 'property' 和 'property_agency_map'

机构 table :

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

属性 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 ...   |
------------------------------

property_agency_maptable将机构table连接到属性 table.

代理模式:

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

现在我的问题是如何访问 property_agency_map 中的 'favorite' 和 'status' 字段 ??

您应该创建新方法来为代理商获取 property_agency_map 项:

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']);
    }
}