我有三个表,名称分别为“ 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中的“收藏夹”和“状态”字段?
解决方法:
您应该创建新方法来获取代理商的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']);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。