我有三个表,名称是'agency', 'property'和'property_agency_map'
agent 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 ... |
------------------------------
将property_agency_map表连接到代理表。
代理模型:
public function getProperties(){
return $this->hasMany(Property::className(),['id'=>'property_id'])
->viaTable('"{{%property_agency_map}}"',['agency_id'=>'id']);
}
现在我的问题是如何访问'收藏'和'状态'字段在property_agency_map ??
您应该创建一个新的方法来获取property_agency_map项目的代理:
namespace appmodels;
use yiidbActiveRecord;
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 yiidbActiveQuery
*/
public function getPropertyAgency()
{
return $this->hasMany(PropertyAgencyMap::className(), ['agency_id' => 'id']);
}
}