php - 如何从 yii 中的关系中获取数据

标签 php yii

我是 Yii 的初学者,所以我问这个问题。

我有三个不同的表。

第一张 table

第一个表是language(id, language_name)

//id为主键

第二张表

第二个表是verse(id, topic_id, surah_id, verse_text)

//id为主键,

第三张表

第三个表是verse_translations(id, verse_id, language_id, translations_text)

//id是主键,language_id是外键引用语言表,

//verse_id是verse表的外键引用。

现在我的问题是。

我想获取具有特定 verse_id 的可用翻译的语言列表。 ?为此,我想在 verse 模型文件中建立关系,它将在我的 View 中返回可用的语言,那么如何在 View 中也获得结果。?如果发生任何变化,verse 模型、 View 和 Controller 将发生什么变化。

我已经在下面编写了 MySQL 查询。

SELECT language.language_name from language 
Inner Join verse_translations ON  verse_translations.language_id = language.id
Where verse_translations.verse_id = 1

但我在 Yii 中需要这个。

我已经通过gii代码生成器生成了verse模型。

My Verse 模型关系函数。

public function relations()
{
 return array(
    'sorah' => array(self::BELONGS_TO, 'Sorah', 'sorah_id'),
    'topic' => array(self::BELONGS_TO, 'Topic', 'topic_id'),
    'verseFeedbacks' => array(self::HAS_MANY, 'VerseFeedback', 'verse_id'),
    'verseImages' => array(self::HAS_MANY, 'VerseImages', 'verse_id'),
    'verseLinks' => array(self::HAS_MANY, 'VerseLinks', 'verse_id'),
    'verseTafseers' => array(self::HAS_MANY, 'VerseTafseer', 'verse_id'),
    'verseTranslations' => array(self::HAS_MANY, 'VerseTranslations', 'verse_id'),
    'language_name' => array(self::HAS_MANY, 'Language', 'id'),
 );
}

最佳答案

我给你写了你的sql代码,

$result = Yii::app()->db->createCommand()
->select('l.language_name')
->from('language l')
->join('verse_translations vt' , 'l.id = vt.language_id ')
->join('verse v' , 'vt.id = v.id')
->where('v.id = :var' , array(':var'=>1))
->queryAll();

顺便说一句,我没有读完你所有的帖子,只读了你的 sql :D

更新:如果您在生成模型文件之前在 mysql 中定义关系,您会得到为您生成的关系。这是最简单的方法,那么您可以这样做:

$vers = Ver::model()->findByPk(1);
$allLangs = $vers->language_name; // this will give you an array of Language Model back

告诉我发生了什么

干杯

关于php - 如何从 yii 中的关系中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213045/

相关文章:

PHP session 未在登录页面中注册

php - 使用 mysql 查询(codeigniter)检索以 json 格式保存的数据

php - 如何选择和获取yii的Cgridvew的行id

redirect - Yii 如何重定向到哈希链接表单 Controller ?

php - Symfony 在 MySQL blob 中上传文件

php - 如何使用 FPDI 设置 PDF 页面的大小

php - 使用 html 链接调用 wordpress previous_post_link 函数

php - Yii exists 函数在模型中的用例是什么?

php - 在 yii 1.1 中使用 bootstrap 3 (grid)) 的最佳方式是什么?

php - xsendFile 下载有 0 个字节