gpt4 book ai didi

javascript - yii2中通过javascript获取相关模型

转载 作者:行者123 更新时间:2023-12-03 07:06:49 24 4
gpt4 key购买 nike

我通过 javascript 和 Productnames 中的操作从表中获取一行 Controller 。

我得到的字段是productidproductnamebottletype。到目前为止一切都很好。

JS

<?php
$script = <<< JS
$('#catid').change(function(){
var catid = $(this).val();

$.get('index.php?r=production/productnames/get-for-production',{ catid : catid }, function(data){
alert(data.unitprice);
// var data = $.parseJSON(data);
// $('#productnames-bottletype').attr('value',data.bottletype)

});
});
JS;
$this->registerJs($script);
?>

ProductnamesController 中的操作

public function actionGetForProduction($catid)
{
$bottle = Productnames::findOne(['productnames_productname'=>$catid]);
//$bottle -> select(['productnames.productnames_productname','productnames.bottletype','bottlename.unitprice'])->from('Productnames')->leftJoin('bottlename','productnames.bottletype = bottlename.bottlename')->where(['productnames_productname'=>$catid])->limit(1);
echo Json::encode($bottle);
}

现在我想从与Productname表相关的bottlename表中获取数据,如productname.bottletype = bottlename.bottlename

bottlename有 3 个字段:

id, bottlename, unitprice.

我从上述代码中获取了产品名称瓶子名称。我想要的是获取单价以及上述数据。

下面是我现在得到的屏幕截图:

Here

最佳答案

您应该在 Productnames 模型中具有与“bottlename”表的“bottlename”关系(我将其称为 BottlenameRelation 以区别于 Bottlename 字段):

public function getBottlenameRelation() { 
return $this->hasOne(Bottlename::className(), ['bottlename' => 'bottletype']);
}

然后在操作中添加 BottlenameRelation 引用:

public function actionGetForProduction($catid)
{
$bottle = Productnames::find()->with('bottlenameRelation')->where(['productnames_productname'=>$catid])->asArray()->one();
echo Json::encode($bottle);
}

输出中的 json 将包含 Bottlename 关系字段。

为了完整起见,您可以通过这种方式输出 json,同时添加正确的 HTTP header :

public function actionGetForProduction($catid)
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$bottle = Productnames::find()->with('bottlenameRelation')->where(['productnames_productname'=>$catid])->asArray()->one();
return $bottle;
}

关于javascript - yii2中通过javascript获取相关模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790847/

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