gpt4 book ai didi

mysql - 如何在yii中查询关系数据

转载 作者:行者123 更新时间:2023-11-30 01:33:07 25 4
gpt4 key购买 nike

我创建了一个 Controller ,用于检索 JSON 格式的数据,为此我需要 json 格式的所有关系数据

我的数据库就像

TABLE_1
_id category1
1 fruit
2 vegetable

TABLE_2
_id type
1 winter
2 summer

TABLE_3
_id name cata_table1 cata_table2
1 apple 1 2

Here cata_table1 is foreign key to TABLE_1 and cata_table2 foreign key to TABLE_2

$sql="SELECT * from TABLE_3";
$command=$connection->createCommand($sql);
$row=$command->queryAll();

如何查询关系数据以输出table1中cata_table1字段的值和table2中cata_table2字段的值这样我的结果查询输出就有`_id, name, TABLE_1.category1, TABLE_2.type

model TABLE_3

class TABLE_3 extends CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}

public function tableName()
{
return 'TABLE_3';
}
public function rules()
{
return array(
array('_id,name,cata_table1,cata_table2', 'required'),
array('_id, name, cata_table1, cata_table2', 'safe', 'on'=>'search'),
);
}
public function relations()
{

}

最佳答案

试试这个

您的 TABLE_3 模型中可能存在如图所示的关系

public function relations()
{
'relation1' => array(self::BELONGS_TO, 'TABLE_1', '_id'),
'relation2' => array(self::BELONGS_TO, 'TABLE_2', '_id'),
}

执行与上面相同的操作,然后执行类似的操作

$sql="SELECT * from  TABLE_3";
$command=$connection->createCommand($sql);
$row=$command->queryAll();
$sample=array();
foreach($row as $key=>$value){
$sample=array('id'=>$value->id,'name'=>$value->name,'name1'=>$value->relation1->category1,'name2'=>$value->relation2->type)
}

然后编码为json

echo CJSON::encode($sample);

检查一些语法,这可能不是完美的答案

关于mysql - 如何在yii中查询关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com