首頁 > 後端開發 > php教程 > yii的relations要怎么写?熟悉YII的朋友们帮看看

yii的relations要怎么写?熟悉YII的朋友们帮看看

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-23 14:27:53
原創
995 人瀏覽過

表一  (city)
id    name   code
1     北京     0001
2     上海     0002


表二 (user)
id    username  citycode
1      小李        0001
2      小王        0001
3      小红        0002

第二个表的citycode字段是第一个表的code字段相对应

在YII的model里要怎么写这两个model的relations要怎么写呢?
city表的对应model  (City.php)

<?phpclass City extends CActiveRecord{	public static function model($className=__CLASS__)	{		return parent::model($className);	}		public function tableName()	{		return 'city';	}		public function relations()	{		return array(			//'user' => array(self::HAS_MANY, 'User', 'code'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
登入後複製


user表的对应model (User.php)
<?phpclass User extends CActiveRecord{	public static function model($className=__CLASS__)	{		return parent::model($className);	}		public function tableName()	{		return 'user';	}		public function relations()	{		return array(			//'city' => array(self::BELONGS_TO, 'City', 'citycode'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
登入後複製



按我上面的写法,在视图(view)文件里 使用如:$data->city->name  或 $data->user->username会出错。
初学YII 对relation不知道要怎么写,麻烦知道的朋友指导下,谢谢了!


回复讨论(解决方案)

没人帮解决吗?

我也是个新手,说说我的看法!
首先你的表就有问题,作为两个表产生 关联是因为有 外键约束。而你的第一个表中的字段 citycode不是主键,那么就不能作为外键。就谈不上,两个表之间的联系了。


如果,你的表创建如下:
create table city(
    cityCode varchar(25) not null primary key,
    name varchar(128) not null,
);

create table user(
    id int(11) primary key,
     name varchar(128) not null,
    cityCode varchar(25) not null,
    foreign key(cityCode) references city(cityCode),
);

建立了外键之后,
描述 关联关系:
User 中:
return array('user'=>array(self::BELONGS_TO, 'City', 'cityCode'));

City中:
return array('city'=>array(self::HAS_MANY, 'User', 'cityCode'));

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板