我有三张名为'agency','property'和'property_agency_map'的表
代理商表:
--------------------------
| id => primary key ... |
| name => string ... |
| and som more fields |
--------------------------
属性表:
--------------------------
| id => primary key ... |
| state => string ... |
| adress => string ... |
| and som more fields |
--------------------------
property_agency_map 表格:
------------------------------
| id => primary key ... |
| agency_id => string ... |
| property_id => string ... |
| status => intiger ... |
| favorite => intiger ... |
------------------------------
property_agency_map 表格将代理商表格连接到属性表格。
代理商模式:
public function getProperties(){
return $this->hasMany(Property::className(),['id'=>'property_id'])
->viaTable('"{{%property_agency_map}}"',['agency_id'=>'id']);
}
现在我的问题是如何访问 property_agency_map 中的“收藏”和“状态”字段?
答案 0 :(得分:3)
您应该创建新方法来获取代理商的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']);
}
}