php - Yii Framework - ActiveRecord 不返回连接表的数据

标签 php mysql activerecord yii

Yii Framework 真的很棒,但是我在使用 Active Record 从 MySQL 数据库查询数据时遇到了问题。

当我在模型构建中的函数“get”中加入 2 个表(“building”和“building_info”)时,第二个表将不会返回任何数据。如果我使用查询类执行相同的查询,将返回两个表中的行。使用 Active Record,我只能从表“building”中获取数据。

模型构建:

...
// Setting Relation
public function getBuildingInfos()
{
    return $this->hasMany(BuildingInfo::className(), ['BuildingID' => 'ID']);
}    

// Get all buildings
public function get() {
    $building = Building::find()
        ->joinWith('buildingInfos')
        ->where(['building_info.langID' => 1])
        ->all();

    return $building;
}
// Attributes
public function attributeLabels()
{
    return [
        'ID' => 'ID',
        'NameBreak' => 'Name Break',
        'Tileset' => 'Tileset',
        'TilesetPosition' => 'Tileset Position',
        ...
    ]
}
...

模型构建信息:

...
public function attributeLabels()
{
    return [
        'buInfoID' => 'Bu Info ID',
        'BuildingID' => 'Building ID',
        'langID' => 'Lang ID',
        'Name' => 'Name',
        'ShortDesc' => 'Short Desc',
        'ShortDescDisabled' => 'Short Desc Disabled',
    ];
} 
public function getBuilding()
{
    return $this->hasOne(Building::className(), ['ID' => 'BuildingID']);
}
...

你知道如何解决这个问题吗?

谢谢 凯文

最佳答案

再见,凯文 :) 您使用的是 yii1 还是 yii2?

在“getBuildingInfos”中,表格由 BuidingID 链接,在您的 get 函数中,您通过 building_info.langID 链接它。您是否已验证您的连接在 sql 中有效?

关于php - Yii Framework - ActiveRecord 不返回连接表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32631782/

相关文章:

mysql - 是否可以在 MySQL 中使用基于函数的索引?

sql - Rails HABTM 查询——带有所有标签的文章

ruby-on-rails - 在命名范围之间共享方法

javascript - 从 1 数到 10 并在按钮链接内重复

javascript - 如何使用动态 JS 变量解析 PHP 变量?

mysql - 将 count(*) 作为选择查询的一部分是错误的吗

ruby-on-rails - 在 ActiveRecord 关系上定义自定义查找器方法?

php - PHP上的MySQL文本数据限制

php - 如何将MySQL数据库v5.7.19部署到远程MySQL数据库v5.5.6

mysql - 如何将逗号放在货币数据类型中,例如 Decimal