非外键和非主键的Yii HAS_MANY关系

我有以下代码:

$country = CountryCodes::model()->with( [ 'country_subdivisions' => [ CountryCodes::HAS_MANY, 'CountrySubDivision', ['country_subdivisions.iso2'=>'t.iso2'] ] ] )->findByPk($id); $states = $country->country_subdivisions;

我有2个型号/表CountryCodes和CountrySubDivision。 这两个表有ISO2列。 我想获得一个国家的有关分区编号查询。

我不知道为什么会收到以下错误:

关系“country_subdivisions”不活动记录类“CountryCodes”中定义。

我在Yii框架是一个新手,我使用Yii 1.1.x和PHP 5.6。

--------------解决方案-------------

首先,你需要定义通过重写关系relations()方法CountryCodes类。

public function relations() {
$relations = [
'country_subdivisions' => [
CountryCodes::HAS_MANY,
'CountrySubDivision',
[
'iso2' => 'iso2'
]
]
];
// merge with parents
return CMap::mergeArray(
parent::relations(),
$relations
);
}

然后,您可以:

$country = CountryCodes::model()->with('country_subdivisions')->findByPk($id);
$states = $country->country_subdivisions;

分类:php 时间:2015-03-14 人气:0
本文关键词: PHP和MySQL,警予
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.360 (s). 10 q(s)