Rumah > pembangunan bahagian belakang > tutorial php > yii的relations要怎么写?熟悉YII的朋友们帮看看

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

WBOY
Lepaskan: 2016-06-23 14:27:53
asal
953 orang telah melayarinya

表一  (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'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
Salin selepas log masuk


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'),这里不知道要怎么写,这样写不知道对不对?		);	}//…………}
Salin selepas log masuk



按我上面的写法,在视图(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'));

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan