如何访问 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']);
}
}
我有三个 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']);
}
}