[英]Yii joining two table using relations in model
嗨,我想在 Yii 中使用關系加入這兩個表,問題是我很難弄清楚 Yii 關系是如何工作的。
picturepost
id
title
link_stat_id
linkstat
id
link
post_count
我也有一個有效的 SQL 查詢。 這是我希望我的關系結果查詢當我搜索的時候我想picturepost
SELECT picturepost.id, picturepost.title,linkstat.post_count
FROM picturepost
RIGHT JOIN linkstat
ON picturepost.link_stat_id=linkstat.link;
當我搜索帖子時,我想要這樣的東西。
$post = PicturePost::model() -> findByPk($id);
echo $post->linkCount;
這是我的額外信息表:
CREATE TABLE IF NOT EXISTS `picturepost` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`title` text COLLATE utf8_unicode_ci DEFAULT NULL,
`link_stat_id` char(64) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM;
CREATE TABLE IF NOT EXISTS `linkstat` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`link` char(64) COLLATE utf8_unicode_ci NOT NULL,
`post_count` int(11) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `post_count` (`post_count`),
KEY `link_stat_id` (`link`)
) ENGINE=InnoDB;
預先感謝我希望我解釋清楚。
有一些關於此的教程,我不會重復它們,但敦促您查看它們。
最簡單的起點是在數據庫中創建外鍵約束,然后使用 Gii 工具為模型生成代碼,在本例中為表picturepost 。
這應該會產生一個帶有方法關系()的類 Picturepost,
class Picturepost extends {
public function relations()
{
return array(
'picturepost_linkstats' => array(self::HAS_MANY,
'linkstat', 'link_stat_id'),
);
}
這使用 *link_stat_id* 字段作為外鍵(到鏈接表的主鍵)鏈接 2 個表。
查詢表picturepost時,可以自動拉入linkstat記錄。
// Get the picturepost entry
$picturepost = PicturePost::model()->findByPk(1);
// picturepost_linkstats is the relationship name
$linkstats_records = $picturepost->picturepost_linkstats;
public function relations()
{
return array(
'linkstat' => array(self::HAS_ONE, 'Linkstat', array('link_stat_id'=>'link')),
);
}
更多關於yii 關系。
這假設您有一個活動記錄模型 Linkstat,它表示表 linkstat 中的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.